C# 向服务安装程序c添加命令行参数#

C# 向服务安装程序c添加命令行参数#,c#,command-line,installation,service,C#,Command Line,Installation,Service,我正在开发一个作为服务启动的应用程序,但只有当命令行开关告诉它时(否则会打开一个标准表单)。因此,当Windows在启动时启动服务时,它必须通过此命令行选项,否则服务无法启动 我希望安装程序(ServiceProcessInstaller)添加一个命令行选项,以便在启动服务时将命令行选项添加到命令中 例如: MyService.exe-命令行选项 我以为这就是ServiceProcessorInstaller.Context属性的用途,但这是针对InstallUtil上执行的参数的 有什么建议吗

我正在开发一个作为服务启动的应用程序,但只有当命令行开关告诉它时(否则会打开一个标准表单)。因此,当Windows在启动时启动服务时,它必须通过此命令行选项,否则服务无法启动

我希望安装程序(ServiceProcessInstaller)添加一个命令行选项,以便在启动服务时将命令行选项添加到命令中

例如: MyService.exe-命令行选项

我以为这就是ServiceProcessorInstaller.Context属性的用途,但这是针对InstallUtil上执行的参数的


有什么建议吗?

每个版本只安装一次服务。听起来好像您在谈论在服务启动时将命令行参数传递给服务

使用以下命令启动服务时,可以将命令行参数传递给该服务:


当我向服务添加命令行选项时,我总是默认作为服务运行。然而,我知道可能会出现相反的情况,因为SvcHost的工作方式是:它是一个EXE,总是配置为将DLL作为服务加载。

您的问题并不清楚:您的应用程序是安装服务、启动服务还是两者都安装服务?我想是前者。对于这种模糊性,我深表歉意。该应用程序通常是标准的windows窗体应用程序。但是,在Main()方法中,它查找命令行参数。如果有-service命令行选项,它将启动服务。我还包括了InstallUtil为向Windows注册服务而查找的安装程序类别。当Windows在启动时启动该服务时,应使用命令行选项调用该服务。如果是这种情况,请参阅my Q at John,他链接到的问题解释了如何配置该服务以附加任何人启动该服务时传递的参数。我想它包含了蒂姆问题的答案。每次都使用相同的命令参数,然后对其进行配置。每次使用不同的参数,然后使用Start并传递参数。下面是如何使用的,由Jorg提供:您链接的问题似乎就是我需要的。我想我没有找到合适的词。他们不能让事情变得容易,是吗?!谢谢你,史蒂文!Jorg获得了荣誉,但我很高兴能让你关注他的出色工作。
using (var controller = new ServiceController("servicename")) {
    controller.Start(arg0, arg1);
}