7
我們正在嘗試做重大升級。當我調查時,我發現了兩種方法。Majorupgrade或升級ID是主要升級的首選?
一個使用升級ID,另一個是Majorupgrade標籤。
看來Majorupgrade似乎很容易做到。但是schedule不包含任何installinitialize操作。
我不確定應該使用哪個。
哪一個是主要的[推薦]?
我們正在嘗試做重大升級。當我調查時,我發現了兩種方法。Majorupgrade或升級ID是主要升級的首選?
一個使用升級ID,另一個是Majorupgrade標籤。
看來Majorupgrade似乎很容易做到。但是schedule不包含任何installinitialize操作。
我不確定應該使用哪個。
哪一個是主要的[推薦]?
在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。
Schedule安裝了InstallInitialize之前的選項「afterInstallValidate」。 – Adkins