【问题标题】:WiX Uninstall functionality with StandardBootstrapperApplication带有 StandardBootstrapperApplication 的 WiX 卸载功能
【发布时间】:2013-06-22 11:44:11
【问题描述】:

我已经为一组具有依赖关系的应用程序构建了一个非常基本的安装程序,它可以处理 .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>

我知道处理最后几个退出代码有点笨拙,但我目前并不关心它,只要它不影响我的其他问题。

【问题讨论】:

    标签: wix uninstallation burn wix3.7


    【解决方案1】:

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

    【讨论】:

    • 好的,可以将什么样的命令行参数传递给卸载命令?我刚试了一下,好像不行
    • 任何字符串。 .exe 包可以是任何东西,因此 Burn 不能假设每个操作都有一个标准开关。尝试“/卸载”开始。
    • 它有效,谢谢!知道如何阻止引导程序自行安装吗?
    • 当我查看控制面板以从程序列表中卸载时,安装程​​序本身就在该列表中......我被告知这是不可取的,并且一直在努力让它不在那个列表中,但似乎无法找到一种方法来做到这一点。我不认为这是完全可能的。
    • 不是。必须注册捆绑包,以便用户可以在捆绑包本身上运行卸载。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-12-17
    • 2015-01-25
    • 1970-01-01
    • 2011-01-21
    • 1970-01-01
    • 2017-06-15
    • 1970-01-01
    相关资源
    最近更新 更多