我需要基于 wix 的安装程序的以下行为:
1.x.x 系列的先前版本。
2.x.x 行应该主要更新 2.x.x 行的任何先前版本,但
单独留下 1.x.x 行。
我虽然可以使用以下代码使其工作,但设置删除了以前的 1.x.x 版本。我是在说些什么吗?这甚至可能吗?
<Upgrade Id="myguid">
<UpgradeVersion OnlyDetect="yes" Minimum="2.0.0.1" Property="NEWERVERSIONDETECTED" IncludeMinimum="no" />
<UpgradeVersion OnlyDetect="no" Maximum="2.0.0.1" Property="OLDERVERSIONBEINGUPGRADED" IncludeMaximum="no" />
</Upgrade>
<InstallExecuteSequence>
<RemoveExistingProducts After="InstallInitialize" />
</InstallExecuteSequence>
最佳答案
您需要使用 新品 2.x 的 GUID,如果您不希望它“知道” 1.x(即忽略它,不在乎等)
我使用以下代码,只更改 var.Property_UpgradeCode
当我想要一个新版本忽略以前安装的版本时(例如,在不同的文件夹中并排存在)
<Product Id="*"
UpgradeCode="$(var.Property_UpgradeCode)"
Name="!(loc.ApplicationName)"
Language="!(loc.Property_ProductLanguage)"
Version="$(var.version)"
Manufacturer="!(loc.ManufacturerName)" >
<MajorUpgrade AllowSameVersionUpgrades="yes"
DowngradeErrorMessage="!(loc.LaunchCondition_LaterVersion)"
MigrateFeatures="no"
Schedule="afterInstallInitialize" />
关于Wix:如何限制对主要版本号的主要升级?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7334796/