個別のマージモジュールを備えたx86用のVisualC++2008ランタイムコンポーネントのインストールを含むWiXプロジェクトがあります。
残念ながら、MSIv4.5の.msmにはよく知られた問題があります。具体的には、.msmカスタムアクションSxSUninstallCAは、アンインストール時に完了するのに20分かかります。
つまり、簡単に言うと、新しいバージョンの製品から.msmを削除し、.exeファイルを使用してVC++コンポーネントをサイレントインストールすることにしました。
これだけ(そしてもちろんProductCode)を変更すると、インストーラーはマシンに既にインストールされている製品を検出せず、古いバージョンを最初にアンインストールせずに通常のインストールを実行します。
ここで何が起こっているのかについて何か考えはありますか?MSIはUpgradeCodeとProductCodeをチェックして、製品がシステムにすでにインストールされている別の製品のアップグレードであるかどうかを検出する必要がありますか?