我尝试在Wix中使用以下代码。
但是在安装时,安装程序在状态下冻结了3分钟:启动服务,然后我收到此消息“Service Jobservice无法启动。验证您是否具有足够的权限来启动系统服务”。 我的代码有什么问题吗?我可以要求用户在安装过程中输入Windows系统用户名和密码以获得“权限”吗?
非常感谢!
<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>
答案 0 :(得分:70)
以下代码适用于我...无需提示输入用户名/密码:)
<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>
答案 1 :(得分:15)
我发现此页面上的解决方案会正确安装服务,但ServiceControl元素无法启动服务。
将wix安装的服务与手动安装的服务(“JobService.exe / install”)进行比较,“可执行路径”字段缺少启动开关。使用ServiceInstall的arguments属性在wix中修复此问题;
<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>
很长一段时间,这是我在这里的第一篇文章 - 我希望它对某人有所帮助。
答案 2 :(得分:2)
针对WiX版本3.x的用户的更新。以下代码将在本地帐户下安装并启动该服务。请注意ServiceInstall标记中的Arguments属性。
<File Source="$(var.MyService.TargetPath)" />
<ServiceInstall Id="ServiceInstaller" Name="MyService" Type="ownProcess" Vital="yes" DisplayName="My Service" Description="My Service Description" Start="auto" Account="LocalSystem" ErrorControl="normal" Arguments=" /start MyService" Interactive="no" />
<ServiceControl Id="StartService" Name="MyService" Stop="both" Start="install" Remove="uninstall" Wait="yes" />
答案 3 :(得分:0)
对我来说,它至少帮助了一次,我删除了用于安装和卸载的服务
<ServiceControl Remove="both" />
我认为这从Regedit中删除了一些内容