从Wix自定义BA Bundle升级旧的msi

时间:2015-03-03 01:46:19

标签: wix bootstrapper

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

  1. 检测RelatedMsiFeatureHandler检测到安装了较旧的msi软件包。
  2. 我正在处理各个包的计划事件并根据需要设置状态。例如:state =现在安装
  3. 我不能申请(UpdateReplace),因为我没有旧的Bundle,
  4. 百万美元的问题是如何升级这个msi包? 任何帮助表示赞赏。

    由于

2 个答案:

答案 0 :(得分:0)

我所要做的就是在Bundle.wxs中为链中的相关Msi包设置MsiProperty UPGRADE = 1。这确保了当Bundle.exe运行时,特定的msi升级为BTW:这是我们的第一个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>

答案 1 :(得分:0)

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

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

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