Visual Studio 2015 RC
Wix v3.10.0.1726
我正在为Windows服务创建安装程序.我已经使用InstallUtil测试了该服务,并且运行良好.不幸的是,我在使用wix时遇到了一些麻烦,这是确切的错误-
“服务’服务名称’无法启动.请验证您具有启动系统服务的足够特权.”
现在,我将问题缩小为通过WIX启动服务.如果我放弃了ServiceControl标记,并使用services.msc手动将其启动,那么它将正常工作.
从其他问题来看,该错误似乎是一般的捕获错误,并且在多种情况下都会发生.最受欢迎的是您的服务是否依赖安装到GAC(全局程序集缓存)的程序集,我也不清楚.我从来没有将任何内容隐式保存到GAC中,我的服务只是调用我编写的包含在项目中的.cs文件.
任何帮助将不胜感激!
<Component Id="ProductComponent7">
<File Source="$(var.ServiceName.TargetPath)" KeyPath="yes" Vital="yes"/>
<ServiceInstall Id="ServiceName.exe"
Account="LocalSystem"
Arguments="-start"
Type="ownProcess"
Name="ServiceName.exe"
DisplayName="ServiceName Service"
Description="sdfg"
Start="auto"
Interactive="yes"
ErrorControl="critical" />
<ServiceControl Id="ServiceControl" Name="ServiceName" Start="install" />
</Component>
我还在ServiceControl中尝试了各种不同的属性,最近我将它们全部删除,以使其尽可能简单.
如果有人有任何见解,那就太好了!
解决方法:
正确,这是一个一般性错误.您必须分析服务以了解为什么它无法启动.
GAC只是一种情况.在这种情况下,这是因为MSI直到StartServices之后才将程序集发布到GAC.经典的竞争条件会导致缺少依赖项和错误.
在消息框仍然显示的情况下,从控制台运行EXE.你有错误吗?您的应用程序日志中是否有任何错误?找出为什么该服务无法修复,请解决该问题然后重试.