wix服务无法启动,但如果我手动启动,它可以工作

时间:2012-01-20 12:11:41

标签: .net windows-services wix windows-installer

我正在使用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启动它,它可以正常工作。之后,我的安装程序能够卸载,并在重新安装后再次启动服务而不会出现任何问题。

1 个答案:

答案 0 :(得分:6)

ServiceControl元素的Name属性与ServiceInstall元素的Name属性不匹配。您正在创建名为“MyService”的服务,但尝试启动名为“MyService.exe”的服务。此服务不存在,因此您获得1920.

另一个原因可能是你的服务exe有COM元数据,而你没有将它写入wxs。