Element MajorUpgrade został wprowadzony w wix 3.5, aby uprościć to, co normalnie zrobiłbyś z elementem Upgrade. Tak że zamiast coś takiego:
<!– 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>
Można po prostu to zrobić:
<MajorUpgrade DowngradeErrorMessage="Can’t downgrade." />
Nie tylko jest stary sposób bardziej gadatliwy, to wymaga również, aby powtórzyć wersji kodu uaktualnienie i produktów, które są określone w elemencie Product. Tak więc powyższy przykład musi korzystać ze zmiennych wix, aby zachować ich synchronizację. Jeśli się pomylisz, aktualizacja nie będzie działać poprawnie.
Nowy element MajorUpgrade
nie ma żadnego z tych komplikacji, więc polecam go użyć. Zobacz także ten blog post by Bob Arnson introducing MajorUpgrade
i topic in the wix documentation na temat.
Harmonogram ma opcję "afterInstallValidate" przed instalacją InstallInitialize. – Adkins