WiX Burn bundle安装程序-处理升级和卸载exe软件包

WiX Burn bundle安装程序-处理升级和卸载exe软件包,wix,exe,upgrade,uninstallation,bootstrapper,Wix,Exe,Upgrade,Uninstallation,Bootstrapper,我正在使用WiX开发一个捆绑安装程序,其中包括一个MSI包和几个EXE包。对于EXE软件包,WiX捆绑包安装程序似乎可以处理升级或取消安装,但不能同时处理这两个问题。是否可以创建一个WiX捆绑包安装程序,该安装程序包含可同时处理升级和卸载ExePackages的ExePackages 我遇到的第一个问题是,在卸载捆绑包时,它只会卸载MSI软件包,并将EXE安装的软件包留在系统上。我发现解决这个问题的方法是在execpackage元素中放置一个DetectCondition。但是,DetectCo

我正在使用WiX开发一个捆绑安装程序,其中包括一个MSI包和几个EXE包。对于EXE软件包,WiX捆绑包安装程序似乎可以处理升级或取消安装,但不能同时处理这两个问题。是否可以创建一个WiX捆绑包安装程序,该安装程序包含可同时处理升级和卸载ExePackages的ExePackages

我遇到的第一个问题是,在卸载捆绑包时,它只会卸载MSI软件包,并将EXE安装的软件包留在系统上。我发现解决这个问题的方法是在execpackage元素中放置一个DetectCondition。但是,DetectCondition似乎会干扰升级ExePackage。在检测条件存在的情况下,升级安装的日志显示Exe包的“错误0x80070002:找不到有效负载”

例如,带有DetectCondition的ExeBundle部分如下所示:

<ExePackage Id="BLAH_INSTALLER"
              SourceFile="$(var.SolutionDir)\InputBin\SetupBlah.exe"
              Compressed="yes"
              InstallCommand="/install /norestart /quiet"
              UninstallCommand="/uninstall /quiet"
              RepairCommand="/repair /quiet"
              DetectCondition="BlahPresent"
              Cache="always" >
    <dep:Provides Key="IntelISA" Version="5.1.10.160" />
  </ExePackage>

以及BlahPresent逻辑:

<util:FileSearch
  Id="Blah_Installed"
  Path="[ProgramFiles64Folder]\Blah\blah.exe"
  Variable="BlahPresent"
  Result="exists" />

我在一个示例中发现了这种检测条件,它似乎支持升级和卸载捆绑包中的ExePackage:

DetectCondition="WixBundleInstalled=1"
这是它在ExePackage元素中的显示方式:

<ExePackage Id="BLAH_INSTALLER"
              SourceFile="$(var.SolutionDir)\InputBin\SetupBlah.exe"
              Compressed="yes"
              InstallCommand="/install /norestart /quiet"
              UninstallCommand="/uninstall /quiet"
              RepairCommand="/repair /quiet"
              DetectCondition="WixBundleInstalled=1"
              Cache="always" >