如何使用WiX安装和启动Windows服务

我试图在Wix中使用下面的代码。

但是,安装时,安装程​​序冻结了3分钟的状态:启动服务,然后我得到这个消息“Service Jobservice启动失败,请确认您有足够的权限启动系统服务”。 我的代码有错吗? 我可以要求用户在安装过程中inputwindows系统的用户名和密码来获得“权限”吗?

非常感谢!

<File Id='JobServiceEXE' Name='JobService.exe' DiskId='1' Source='JobService.exe' Vital='yes' KeyPath='yes'/> <ServiceInstall Id="ServiceInstaller" Type="ownProcess" Vital="yes" Name="JobService" DisplayName="123 Co. JobService" Description="Monitoring and management Jobs" Start="auto" Account="LocalSystem" ErrorControl="ignore" Interactive="no" /> <ServiceControl Id="StartService" Stop="both" Remove="uninstall" Name="JobService" Wait="yes" /> </Component> 

下面的代码适用于我…不需要提示input用户名/密码:)

  <File Id='JobServiceEXE' Name='JobService.exe' DiskId='1' Source='JobService.exe' KeyPath='yes'/> <ServiceInstall Id="ServiceInstaller" Type="ownProcess" Name="JobService" DisplayName="123 Co. JobService" Description="Monitoring and management Jobs" Start="auto" Account="[SERVICEACCOUNT]" Password="[SERVICEPASSWORD]" ErrorControl="normal" /> <ServiceControl Id="StartService" Start="install" Stop="both" Remove="uninstall" Name="JobService" Wait="yes" /> </Component> 

我发现在这个页面上的解决scheme将正确地安装服务,但是ServiceControl元素不会启动服务。

比较wix安装的服务和手动安装的服务(“JobService.exe / install”),“可执行的path”字段缺less启动开关。 使用ServiceInstall的参数属性修复了这个问题;

 <File Id='JobServiceEXE' Name='JobService.exe' DiskId='1' Source='JobService.exe' KeyPath='yes'/> <ServiceInstall Id="ServiceInstaller" Type="ownProcess" Name="JobService" DisplayName="123 Co. JobService" Description="Monitoring and management Jobs" Start="auto" Account="[SERVICEACCOUNT]" Password="[SERVICEPASSWORD]" ErrorControl="normal" Arguments=" /start JobService" /> <ServiceControl Id="StartService" Start="install" Stop="both" Remove="uninstall" Name="JobService" Wait="yes" /> </Component> 

很长一段时间潜伏者,这是我在这里的第一个职位 – 我希望它可以帮助别人。