我需要基于wix的安装程序的以下行为:
我虽然可以使用以下代码使用它,但是安装程序删除了以前的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>
答案 0 :(得分:6)
如果您不希望它“知道”1.x(即忽略它,不关心等),则需要为2.x使用 NEW GUID < / p>
我使用以下代码,仅在我希望新版本忽略以前安装的版本时更改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" />
答案 1 :(得分:3)
将@Minimum和@Maximum属性放在单个UpgradeVersion元素上以指定范围。创建多个UpgradeVersion元素以指定多个版本范围。