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

Sam*_*abu 8 windows-installer wix major-upgrade

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

一个是使用升级ID,另一个是Majorupgrade标记.

似乎Majorupgrade很容易做到.但是,scheduleinitialize操作之前的计划不包含任何内容.

我不确定应该使用哪个.

主要是哪一个[和推荐]?

Wim*_*nen 20

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>
Run Code Online (Sandbox Code Playgroud)

你可以这样做:

<MajorUpgrade DowngradeErrorMessage="Can’t downgrade." />
Run Code Online (Sandbox Code Playgroud)

旧方法不仅更冗长,而且还要求您重复Product元素中指定的升级代码和产品版本.因此,上面的示例必须使用wix变量来保持它们的同步.如果出错,升级将无法正常运行.

MajorUpgrade元素没有任何复杂性,所以我建议你使用它.另请参阅Bob Arnson介绍的MajorUpgrade这篇博客文章以及关于该主题的wix 文档中的主题.