Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wix burn不会停止并删除服务_Wix_Windows Installer_Burn - Fatal编程技术网

Wix burn不会停止并删除服务

Wix burn不会停止并删除服务,wix,windows-installer,burn,Wix,Windows Installer,Burn,我使用burn创建了bootstrapper安装程序,其中包含4个msi,其中3个安装在其中(取决于操作系统) 其中一个安装程序安装并运行该服务。如果我仅将此服务用于卸载,则服务将被停止并从服务列表中删除。但是,如果我使用bootstrapper安装程序卸载,服务将保留在列表中,并显示为正在运行(即使所有文件都已删除,并且服务未在实际环境中运行) 有人知道从msi卸载和从exe引导程序卸载(同一个msi被打包)之间的区别吗 服务安装: <Component Id="ComponentId"

我使用burn创建了bootstrapper安装程序,其中包含4个msi,其中3个安装在其中(取决于操作系统)

其中一个安装程序安装并运行该服务。如果我仅将此服务用于卸载,则服务将被停止并从服务列表中删除。但是,如果我使用bootstrapper安装程序卸载,服务将保留在列表中,并显示为正在运行(即使所有文件都已删除,并且服务未在实际环境中运行)

有人知道从msi卸载和从exe引导程序卸载(同一个msi被打包)之间的区别吗

服务安装:

<Component Id="ComponentId" Guid="someguid-4C46-832F-B3E7E063713A">
        <File Id="ExeFile" Checksum="yes" KeyPath="yes" Source="service.exe" />
        <ServiceInstall DisplayName="[ProductName]"
                        Name="myservice"
                        Id="ServiceInstall"
                        Start="auto"
                        ErrorControl="normal"
                        Type="ownProcess"
                        Account="[ACCOUNTUSER]"
                        Password="[ACCOUNTPASSWORD]" />
        <ServiceControl Id="ServiceControl"
                        Name="myservice"
                        Remove="uninstall"
                        Wait="yes"
                        Start="install"
                        Stop="both" />
</Component>

而引导者:

<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi" xmlns:bal="http://schemas.microsoft.com/wix/BalExtension">
    <Bundle Name="MyBundle" Version="1.0.0.0" Manufacturer="Me" UpgradeCode="someguid-40da-bda2-1e46a5a55c47">
    <BootstrapperApplicationRef Id="WixStandardBootstrapperApplication.HyperlinkLicense">
      <bal:WixStandardBootstrapperApplication LicenseUrl="" SuppressOptionsUI="yes" LogoFile="logo.bmp" SuppressRepair="yes" />
    </BootstrapperApplicationRef>

    <Chain>
      <MsiPackage
              Id="App1"
              SourceFile="App1_x86.msi"
              InstallCondition="NOT VersionNT64"
              DisplayInternalUI="yes"
              Permanent="no" />

      <MsiPackage
              Id="App1"
              SourceFile="App1_x64.msi"
              InstallCondition="VersionNT64" 
              DisplayInternalUI="yes"
              Permanent="no" />

      <MsiPackage
              Id="App2"
              SourceFile="App2.msi"
              DisplayInternalUI="yes"
              Permanent="no" />

      <MsiPackage Id="Service"
              SourceFile="Service.msi"
              DisplayInternalUI="yes"
              Permanent="no" />
        </Chain>
    </Bundle>
</Wix>

我已经弄明白了这一点,卸载App2时杀死所有正在运行的实例可能会有问题。我通过更改最后两个安装包的顺序解决了这个问题,现在它可以很好地删除产品,包括停止并删除服务