我正在尝试安装带有批处理文件的启动参数的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
答案 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中的参数