メジャーアップグレードを試みています。調査中に、2つのアプローチを見つけました。
1つはアップグレードIDを使用しており、もう1つのアプローチはMajorupgradeタグでした。
Majorupgradeは簡単にできるようです。ただし、installinitializeアクションの前のスケジュールには何も含まれていません。
どちらを使用すべきかわかりません。
どちらが最も好まれ[そして推奨]されますか?
メジャーアップグレードを試みています。調査中に、2つのアプローチを見つけました。
1つはアップグレードIDを使用しており、もう1つのアプローチはMajorupgradeタグでした。
Majorupgradeは簡単にできるようです。ただし、installinitializeアクションの前のスケジュールには何も含まれていません。
どちらを使用すべきかわかりません。
どちらが最も好まれ[そして推奨]されますか?
MajorUpgrade要素はwix3.5で導入され、 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
要素にはこれらの複雑さはないので、使用することをお勧めします。ボブ・アーンソンによるこのブログ投稿と、このMajorUpgrade
テーマに関するwixドキュメントのトピックも参照してください。