我正在开发一个作为服务启动的应用程序,但仅当命令行开关告诉它时(否则打开标准表单)。因此,当Windows在启动时启动服务时,它必须通过此命令行选项,否则服务无法启动。
我希望安装程序(ServiceProcessInstaller)添加一个命令行选项,以便在启动服务时将命令行选项添加到命令中。
实施例: MyService.exe -commandlineoption
我认为这就是ServiceProcessorInstaller.Context属性的用途,但这是针对在InstallUtil上执行的参数。
有什么建议吗?
答案 0 :(得分:1)
当我向服务添加命令行选项时,我一直默认为作为服务运行。但是,我知道相反的情况是可能的,因为它是SvcHost的工作方式:它是一个总是被配置为将DLL作为服务加载的EXE。
答案 1 :(得分:0)
每个版本只安装一次服务。听起来你正在谈论在服务启动时将命令行参数传递给服务。
使用ServiceController.Start method:
启动服务时,可以将命令行参数传递给服务using (var controller = new ServiceController("servicename")) {
controller.Start(arg0, arg1);
}