Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wix主要升级问题_Wix_Windows Installer - Fatal编程技术网

Wix主要升级问题

Wix主要升级问题,wix,windows-installer,Wix,Windows Installer,以下是场景 1.)安装1.0.1.1,然后升级到1.0.2.2==>这工作正常(如预期) 2.)安装1.0.2.2,然后降级到1.0.1.1==>这不起作用(如预期的那样) 3.)安装1.0.1.1,然后安装1.0.1.1==>进入修复/删除模式(如预期) 4.)安装1.0.1.1,然后安装1.0.1.2===>它像一个新的一样安装,并在控制面板的“添加/删除程序”中显示程序两次(我想它应该像3一样工作。)因为据我所知,MSI不关心产品版本的第四部分) 我做错什么了吗 <Product I

以下是场景

1.)安装1.0.1.1,然后升级到1.0.2.2==>这工作正常(如预期)

2.)安装1.0.2.2,然后降级到1.0.1.1==>这不起作用(如预期的那样)

3.)安装1.0.1.1,然后安装1.0.1.1==>进入修复/删除模式(如预期)

4.)安装1.0.1.1,然后安装1.0.1.2===>它像一个新的一样安装,并在控制面板的“添加/删除程序”中显示程序两次(我想它应该像3一样工作。)因为据我所知,MSI不关心产品版本的第四部分)

我做错什么了吗

<Product Id="*" Name="My product" Version="$(var.Version)" Language="1033"  Manufacturer="My Company" UpgradeCode="MY-UPGRADE-CODE">

<Package Description="My product" Comments="Comments" InstallerVersion="200" Compressed="yes" />

<MajorUpgrade Schedule="afterInstallInitialize" DowngradeErrorMessage="A later version of [ProductName] is already installed. Setup will now exit." />

这是WIX文档中提到的行为。您需要在MajorUpgrade元素中将下面的属性设置为“Yes”,以处理此场景。阅读突出显示的文本以了解更多详细信息

AllowSameVersionUpgrades(YesNoType)

当设置为“否”(默认值)时,MSI允许安装具有相同版本和升级代码(但不同产品代码)的产品,并将其视为两个产品。当设置为“是”时,WiX将设置msidUpgradeAttributesVersionMaxInclusive属性,该属性告诉MSI将具有相同版本的产品视为主要升级

当两个产品版本仅在第四个版本字段中不同时,此选项非常有用。MSI在比较产品版本时特别忽略该字段,因此只有第四个版本字段不同的两个产品是相同的产品,需要将此属性设置为“是”才能检测到。

请注意,由于MSI忽略第四个产品版本字段,因此当前三个产品版本字段相同时,将此属性设置为“是”也允许降级。例如,产品版本1.0.0.1将“升级”1.0.0.2998,因为它们被视为同一版本(1.0.0)。这可能会重新引入严重的bug,因此最安全的选择是更改前三个版本字段,并省略此属性以获得默认值no

当AllowDowngrades也为“是”时,此属性不能为“是”-AllowDowngrades已允许具有相同版本号的两个产品相互升级


资料来源:

另见此。不错的是IAH4110。