メジャーアップグレードを実行しようとしています。調査中、私は2つのアプローチを見つけました。メジャーアップグレードに優先するメジャーアップグレードまたはアップグレードIDですか?
1つはアップグレードIDを使用し、もう1つはMajorupgradeタグでした。
マジックアップグレードがしやすいようです。しかし、スケジュールには、installinitialize前のアクションは含まれていません。
どちらを使用するべきかわかりません。
どちらがお勧めですか?お勧めですか?
メジャーアップグレードを実行しようとしています。調査中、私は2つのアプローチを見つけました。メジャーアップグレードに優先するメジャーアップグレードまたはアップグレードIDですか?
1つはアップグレードIDを使用し、もう1つはMajorupgradeタグでした。
マジックアップグレードがしやすいようです。しかし、スケジュールには、installinitialize前のアクションは含まれていません。
どちらを使用するべきかわかりません。
どちらがお勧めですか?お勧めですか?
MajorUpgrade要素は、Upgrade要素で通常行うことを簡単にするためにwix 3.5で導入されました。だから、代わりにこのような何か:あなたは、単にこれを行うことができます
<!– 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も参照してください。
スケジュールには、InstallInitializeより前のオプション「afterInstallValidate」があります。 – Adkins