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

Mar*_*ark 0 .net windows-installer windows-services wix

我正在使用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>
Run Code Online (Sandbox Code Playgroud)

在浏览msi详细日志后,它会显示错误1920

但是,如果我手动安装服务(使用来自cmd提示符的MyService -service)并使用Services.msc启动它,它可以正常工作.之后,我的安装程序能够卸载,并在重新安装时再次启动服务,没有任何问题.

Chr*_*ter 6

ServiceControl元素的Name属性与ServiceInstall元素的Name属性不匹配.您正在创建名为"MyService"的服务,但尝试启动名为"MyService.exe"的服务.这项服务不存在,所以你得到一个1920年.

另一个原因可能是您的服务exe具有COM元数据,而您尚未将其创作到wxs中.