Das Element MajorUpgrade wurde in wix 3.5 eingeführt, um das zu vereinfachen, was Sie normalerweise mit dem Element tun würden. So dass anstatt etwas wie folgt aus:
<!– 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>
Sie können dies einfach tun:
<MajorUpgrade DowngradeErrorMessage="Can’t downgrade." />
Nicht nur ist die alte Art und Weise ausführlicher, es erfordert auch, dass Sie den Upgrade-Code und Produktversion wiederholen, die sind im Product Element angegeben. Daher muss das obige Beispiel wix-Variablen verwenden, um sie synchron zu halten. Wenn Sie das falsch verstehen, wird das Upgrade nicht korrekt funktionieren.
Das neue MajorUpgrade
Element hat keine dieser Komplikationen, daher empfehle ich, dass Sie es verwenden. Siehe dazu auch blog post by Bob Arnson introducing MajorUpgrade
und die topic in the wix documentation zum Thema.
Zeitplan hat die Option "afterInstallValidate", die vor InstallInitialize ist. – Adkins