将命令行参数添加到服务安装程序c#

时间:2009-07-09 23:15:47

标签: c# command-line installer service

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

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

实施例: MyService.exe -commandlineoption

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

有什么建议吗?

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

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

使用ServiceController.Start method

启动服务时,可以将命令行参数传递给服务
using (var controller = new ServiceController("servicename")) {
    controller.Start(arg0, arg1);
}