2012-06-14 13 views
7

Staramy się dokonać aktualizacji głównej. Podczas gdy ja badałem znalazłem 2 podejścia.Majorupgrade lub Upgrade ID, który jest preferowany do aktualizacji Major?

Jeden używa ID uaktualnienia, a innym podejściem był znacznik Majorupgrade.

Wygląda na to, że Majorupgrade jest łatwy do zrobienia. Ale harmonogram nie zawiera żadnej akcji przed instalacją.

Nie jestem pewien, który powinien być używany.

Który z nich jest preferowany [i zalecany] głównie?

+1

Harmonogram ma opcję "afterInstallValidate" przed instalacją InstallInitialize. – Adkins

Odpowiedz

17

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.

Powiązane problemy