在WIX中正确安装更高版本的MSI

时间:2016-09-22 08:26:10

标签: wix windows-installer

我想在安装更高版本的MSI之前/之前删除/卸载预安装的较低版本MSI。我的产品代码始终是唯一的,升级代码始终相同。

(我不想让降级安装。)

但是当我安装更高版本的产品版本MSI时,它会被安装,但新安装和以前安装的MSI的添加/删除程序条目仍然存在。如何克服这个问题?以下是我的代码

<Product Id="*" Name="MyApp" Language="1033" Version="1.11.1111"  UpgradeCode="00000000-8030-4B76-8F3A-8B8BB1000000">
<Package InstallerVersion="200" Compressed="yes" Platform="x86" />

<MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." AllowDowngrades="no" Schedule="afterInstallInitialize"/>

<Upgrade Id="{00000000-8030-4B76-8F3A-8B8BB1000000}">
  <UpgradeVersion OnlyDetect="no" Maximum="99.0.0.0" Property="PREVIOUSVERSIONSINSTALLED" IncludeMaximum="no"/>
  <UpgradeVersion OnlyDetect="yes" Minimum="1.0.0.0" Property="NEWERPRODUCTFOUND" IncludeMinimum="no"/>
</Upgrade>

1 个答案:

答案 0 :(得分:1)

从中可以看出:

http://www.joyofsetup.com/2010/01/16/major-upgrades-now-easier-than-ever/

MajorUpgrade元素取代了Upgrade元素。您已经指定了两种升级类型,因此可能会导致一些问题。

如果版本在前三个字段中递增,则UpgradeCode相同且ProductCode是新的,则最可能导致失败的原因(并且安装了两个条目)是前一个是perUser(或perMachine) )你的升级是相反的。主要升级必须在相同的背景下。