Wix:如何将主要升级限制为主要版本号?
我需要基于wix的安装程序提供以下行为:Wix:如何将主要升级限制为主要版本号?,wix,limit,upgrade,Wix,Limit,Upgrade,我需要基于wix的安装程序提供以下行为: 主版本1.x.x行中的每个设置都应该更新任何 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" P
- 主版本1.x.x行中的每个设置都应该更新任何 1.x.x行的早期版本李>
- 主版本中的每个设置 2.x.x行应主要更新2.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>
在单个UpgradeVersion元素上放置@Minimum和@Maximum属性,以指定范围。编写多个UpgradeVersion元素以指定多个版本范围。如果不希望2.x“感知”1.x(即忽略它、不关心它等),则需要为2.x使用新的GUID
我使用以下代码,仅当我希望新版本忽略以前安装的版本(例如,在不同文件夹中并排存在)时才更改var.Property\u UpgradeCode
谢谢!应该很明显。不过,我很想使用MajorUpgrade并更改升级代码(正如saschabeaumont的回答所建议的)。这种方法有什么缺点吗?根据您的要求没有缺点。谢谢!我很想使用这个解决方案,因为我可以让MajorUpgrade为我处理一切。我只是不确定这个解决方案是否有严重的缺点。还有一件事:AllowSameVersionUpgrades对你来说怎么样?文档讨论了严重bug的可能性……如果不更改前三位中的一位,我不会建议公开发布。然而AllowSameVersionUpgrades使测试/质量保证团队的工作变得更加轻松-我们遇到了一些bug,没有什么不能通过完全删除/重新安装和重新启动来修复的。
<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" />