从 Wix 自定义 BA 捆绑包升级旧的 msi

Upgrade older msi from Wix custom BA Bundle

我们正在将具有手动先决条件的 WIX msi 安装程序(不是捆绑包)升级为托管自定义引导应用程序捆绑包。 boot strapped custom installer bundle exe 适用于全新安装。但是如果我们想升级我们的旧产品,也就是一个 msi,我们就有麻烦了。这就是我想要做的

  1. Detect RelatedMsiFeatureHandler 检测到安装了较旧的 msi 包。
  2. 我正在处理单个包的计划事件并根据需要设置状态。例如:state = Present for install
  3. 我不能申请(UpdateReplace),因为我没有旧的 Bundle,

百万美元的问题是如何升级这个 msi 软件包? 感谢您的帮助。

谢谢

我所要做的就是在 Bundle.wxs 中为链中的相关 Msi 包设置 MsiProperty UPGRADE=1。这确保了当 Bundle.exe 为 运行 时,特定的 msi 被升级 顺便说一句:这是我们的第一个 Bundle 版本。我们之前只有一个 MSI 用于安装。

<MsiPackage DisplayName="Installing Main Product" SourceFile="$(var.Path_Setup)" DisplayInternalUI="no" SuppressSignatureVerification="yes" >
        ***<MsiProperty Name="UPGRADE" Value="1"/>***
        <MsiProperty Name="NAS_PATH" Value="[NasBackupPath]"/>
        <MsiProperty Name="NAS_BAK_TIME" Value="[BackupTime]"/>
      </MsiPackage>
  </Chain>

以防万一有人遇到类似问题(WIX 3.10)

安装程序产品下的此声明将解决此问题。您必须更新产品版本,产品升级代码必须与之前安装的相同。

"AllowSameVersionUpgrades" = yes 将确保不会并排安装相同的产品。