バージョン番号に関係なく、既存のバージョンに上書きインストールする必要があるアプリケーションのインストーラーがあります。
代わりに、プログラムを追加/削除する必要があると常に言うインストーラーがあります。これはテスターにとって非常に苛立たしい動作です。理由がないのに速度が低下するだけだからです。以前のインストーラー パッケージは常にインストールされ、以前にそこにあったファイルが削除されるため、その手順を実行する必要はありませんでした。また、同様にトレーニングされた(大規模な)顧客ベースもあり、現在インストールしているバージョンは、以前にインストールした可能性のあるバージョンを上書きする必要があります。
私が収集できる限りでは、WiX パラダイムは、逆バージョンのインストールをブロックすることや、パッチ適用などの他の複雑なことを行うことのようです。率直に言って、私たちの顧客は、パッチ適用やマージなどについて知ったり気にかけたりするほど賢くなく、常に機能する 1 つのインストーラーだけを望んでいます (そして、私は彼らに同意する傾向があります。帯域幅は安価です)。では、どうすればそれを取得できますか?
私はこれを試しましたが、問題ではないようです:
<InstallExecuteSequence>
<RemoveExistingProducts Before="InstallInitialize"/>
</InstallExecuteSequence>
これは WiX のバージョン 3.0.5120 です。
編集:ロブの提案に従って、次のコードを追加しました:
<InstallExecuteSequence>
<RemoveExistingProducts After="InstallInitialize"/>
</InstallExecuteSequence>
<Upgrade Id="27cb76c7-544e-465f-b1f3-b11d9a49e416">
<UpgradeVersion Minimum="0.8.0"
IncludeMinimum="yes"
Maximum="1.5.1"
Property="OLDERVERSIONBEINGUPGRADED" />
</Upgrade>
ロールバック インストールを許可しないようにコードを追加しているわけではありません。非常に恥ずかしい理由ですが、バージョン番号の増加が必ずしもソフトウェアの良さの増加と相関するとは限りません。誰もが必要だと思うものから締め出されてほしくありません。
また、非常に重要なのは、製品のデフォルトの GUID を「*」に変更して、別のインストーラーで別の GUID を作成することです。これが明らかに問題でした。