我正在使用wix编写安装程序。作为安装的一部分,我正在安装服务并启动它。但我无法启动该服务。
这是wix代码:
<Component Id="Service" Guid="*">
<File Id="MyService.exe"
Name="MyService.exe"
Source="MyService.exe"/>
<ServiceInstall Id="ServiceInstaller"
Type="ownProcess"
Vital="yes"
Name="MyService"
DisplayName="Name="MyService.exe"
Description="Name="MyService.exe"
Start="auto"
Account="LocalSystem"
ErrorControl="normal"
Interactive="no">
<ServiceDependency Id="CcmExec"/>
</ServiceInstall>
<ServiceControl Id="ServiceController"
Start="install"
Stop="both"
Remove="uninstall"
Name="MyService"
Wait="no"/>
</Component>
</DirectoryRef>
在浏览msi详细日志后,它会显示错误1920
但是如果我手动安装服务(使用来自cmd提示符的MyService -service)并使用Services.msc启动它,它可以正常工作。之后,我的安装程序能够卸载,并在重新安装后再次启动服务而不会出现任何问题。
答案 0 :(得分:6)
ServiceControl元素的Name属性与ServiceInstall元素的Name属性不匹配。您正在创建名为“MyService”的服务,但尝试启动名为“MyService.exe”的服务。此服务不存在,因此您获得1920.
另一个原因可能是你的服务exe有COM元数据,而你没有将它写入wxs。