使用StandardBootstrapperApplication进行WiX卸载功能

时间:2013-06-25 15:27:49

标签: wix uninstall burn wix3.7

我为一组具有依赖关系的应用程序构建了一个非常基本的安装程序,并为.NET包处理重启。但是,我现在遇到的问题是卸载操作只会卸载安装程序本身,该安装程序会显示在程序列表中。运行安装过程的所有其他.exe文件仍保持安装状态。有没有简单的方法来处理这个安装?我仍然是WiX工具集的新手,并且不想深入了解自定义安装程序。这是我的包裹:

 <?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"
  xmlns:netfx="http://schemas.microsoft.com/wix/NetFxExtension"
     xmlns:bal="http://schemas.microsoft.com/wix/BalExtension" 
     xmlns:util="http://schemas.microsoft.com/wix/UtilExtension">
  <Bundle Name="Visible EP Installer" Version="1.0.0.0" Manufacturer="VEP" UpgradeCode="8d1a4e2a-be3f-4b51-824b-75652ae98bad">
    <BootstrapperApplicationRef Id="WixStandardBootstrapperApplication.RtfLicense" >
      <bal:WixStandardBootstrapperApplication
          LicenseFile="..\VisibleEP EULA-ver2.rtf"
          LogoFile="..\VEPLogo_HeartOnlyBlack(50x50).png"
        />
    </BootstrapperApplicationRef>
    <?define NetFx45MinRelease = 378389?>
    <util:RegistrySearch
        Id="NETFRAMEWORK45"
        Variable="NETFRAMEWORK45"
        Root="HKLM"
        Key="SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full"
        Value="Release"
        Result="value" />
    <Chain>
      <ExePackage Id="NetFx45Redist" Cache="no" Compressed="yes" PerMachine="yes" Permanent="yes" Vital="yes" InstallCommand="/q /norestart" RepairCommand="/q"
              SourceFile="..\VEP Deploy\Setup Files\dotNetFx45_Full_setup.exe"
              DetectCondition="NETFRAMEWORK45 &gt;= $(var.NetFx45MinRelease)"
              InstallCondition="(NOT NETFRAMEWORK45 &gt;= $(var.NetFx45MinRelease))">
        <ExitCode Value="1641" Behavior="forceReboot"/>
        <ExitCode Value="3010" Behavior="forceReboot"/>
        <ExitCode Value="0" Behavior="success"/>
        <ExitCode Behavior="error"/>
      </ExePackage>
      <ExePackage
        SourceFile="..\VEP Deploy\Setup Files\Encoder_en.exe"
        Permanent="no"
        InstallCommand="/q"
        RepairCommand="/q">
        <ExitCode Behavior="success"/>
      </ExePackage>
      <ExePackage
        SourceFile="..\VEP Deploy\Setup Files\vcredist_x86.exe"
        Permanent="no"
        InstallCommand="/q"
        RepairCommand="/q">
        <ExitCode Behavior="success"/>
      </ExePackage>
      <ExePackage
        SourceFile="..\VEP Deploy\Setup Files\vcredist_x64.exe"
        Permanent="no"
        InstallCommand="/q"
        RepairCommand="/q">
        <ExitCode Behavior="success"/>
      </ExePackage>
      <ExePackage
        SourceFile="..\VEP Deploy\Setup Files\vep_setup.exe"
        Permanent="no">
        <ExitCode Behavior="success"/>
      </ExePackage>
        </Chain>
    </Bundle>
</Wix>

我知道处理最后几个退出代码有点hackish但我现在并不是那么关心它,只要它不影响我的其他问题。

1 个答案:

答案 0 :(得分:3)

您必须提供UninstallCommand属性值,以便Burn知道如何卸载.exes。