2

我有一个将安装 MSI 包的引导程序。但是在卸载 Bootstrapper 时,它不会卸载之前由 Bootstrapper 安装的 MSI。

如何在卸载引导程序的同时卸载 MSI 包?以下是我在 Bootstrapper 中安装 MSI 包的方法。如何增强此代码以在卸载时卸载此 MSI 包?

<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"
     xmlns:util="http://schemas.microsoft.com/wix/UtilExtension">
    <Bundle Name="Name" Version="1.0.0.0" Manufacturer="MyCompany" UpgradeCode="00000000-0000-0000-0000-000000000000" DisableModify="yes" DisableRepair="yes" >

    <BootstrapperApplicationRef Id="WixStandardBootstrapperApplication.HyperlinkLicense">
    <bal:WixStandardBootstrapperApplication
      LicenseUrl=""
      ThemeFile=".\Theme\RtfTheme.xml"
      LocalizationFile=".\Theme\RtfTheme.wxl"

      xmlns:bal="http://schemas.microsoft.com/wix/BalExtension" />
      <Payload SourceFile=".\Images\Logo.gif" />
    </BootstrapperApplicationRef>

        <Chain>
              <PackageGroupRef Id="MyMSI"/>
        </Chain>
    </Bundle>

  <Fragment>

    <PackageGroup Id="MyMSI">
      <MsiPackage Id="MyMSI"
                  DisplayName="My applicaton"
                  DisplayInternalUI="yes"
                  Compressed="no"
                  Visible="yes"
                  InstallSize="549"
                  Cache="yes"
                  Vital="yes"
                  Permanent="no"
                  SourceFile="$(var.MyAppllicationWIX_MSI.TargetPath)"/>
    </PackageGroup>
  </Fragment>
</Wix>
4

1 回答 1

1

可能您的注册表不好,请检查 %temp% 文件夹部分计划中的日志。日志文件将指出 MSI 是否仍被另一个 Bundle 引用计数。

如果您在 VM 上运行测试,请尝试在此捆绑包上运行测试之前重置为最新的检查点。

有时当产品 id 为 * 时也会发生。

于 2016-03-09T10:44:47.420 回答