主要升级首选的升级或升级ID?

时间:2012-06-14 06:02:17

标签: wix windows-installer major-upgrade

我们正在尝试进行重大升级。在我调查的过程中,我发现了两种方法。

一个使用升级ID,另一个方法是Majorupgrade标记。

看来Majorupgrade很容易做到。但是,在安装初始化操作之前,时间表不包含任何内容。

我不确定应该使用哪种。

哪一个首选[并推荐]?

1 个答案:

答案 0 :(得分:19)

在wix 3.5中引入了MajorUpgrade元素,以简化您通常使用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