使用启动参数安装Windows服务

时间:2013-10-15 10:03:43

标签: c# .net batch-file windows-services

我正在尝试安装带有批处理文件的启动参数的Windows服务。

我有服务名称,在安装程序中传递以获取实例名称。我也想设置服务启动参数。将arg传递给安装程序我没有问题。我在启动参数设置上遇到错误。

代码段:

  set serviceName=FSER

    C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\InstallUtil.exe  /servicename="%serviceName%"  "%UserProfile%\AppData\Local\SERVER\%serviceName%\tser.exe "%serviceName%" " /logfile=install.log

2 个答案:

答案 0 :(得分:2)

通过在服务安装程序“Assemblypath”中添加参数解决了问题:

   protected override void OnBeforeInstall(IDictionary savedState)
        {                
                string parameter = "YOUR COMMAND LINE PARAMETER VALUE GOES HERE";
                var assemblyPath = Context.Parameters["assemblypath"];
                assemblyPath += @""" "" " + parameter + "";
                Context.Parameters["assemblypath"] = assemblyPath;
                base.OnBeforeInstall(savedState);
        }

答案 1 :(得分:0)

有问题的报价使用?尝试使用反斜杠转义内部引号,如

"\"myExeFile.exe\" \"myParameter\""

真的不知道InstallUtil,但它失败了,需要InstallUtil,使用InstallUtil安装服务但没有参数,然后使用sc.exe重新配置服务,包括binPath中的参数