我们正在尝试进行重大升级。当我调查的时候,我发现了两种方法。
一种是使用升级Id,另一种是主升级标签。
看起来重大升级似乎很容易做到。但是调度不包含任何在installinitialize之前的操作。
我不确定应该使用哪一个。
哪一个是首选和推荐最多的?
发布于 2012-06-14 15:49:14
MajorUpgrade元素是在Wix3.5中引入的,目的是简化您通常对Upgrade元素所做的操作。所以不是像这样:
<!– Major upgrade –>
<Upgrade Id="$(var.UpgradeCode)">
<UpgradeVersion Minimum="$(var.ProductVersion)" OnlyDetect="yes" Property="NEWERVERSIONDETECTED" />
<UpgradeVersion Minimum="1.0.0" IncludeMinimum="yes" Maximum="$(var.ProductVersion)" IncludeMaximum="no" Property="OLDERVERSIONBEINGUPGRADED" />
</Upgrade>
<InstallExecuteSequence>
<RemoveExistingProducts After="InstallValidate" />
</InstallExecuteSequence>
<Condition Message="Can't downgrade">
NOT NEWERVERSIONDETECTED
</Condition>您可以简单地执行以下操作:
<MajorUpgrade DowngradeErrorMessage="Can’t downgrade." />旧方法不仅更加冗长,而且还需要重复在Product元素中指定的升级代码和产品版本。因此,上面的示例必须使用wix变量来保持它们的同步。如果你弄错了,升级将无法正常工作。
新的MajorUpgrade元素没有这些复杂性,所以我建议您使用它。另请参阅该主题的blog post by Bob Arnson introducing MajorUpgrade和topic in the wix documentation。
https://stackoverflow.com/questions/11027511
复制相似问题