私は、MSI、C#カスタムアクションプログラム、UI、ブートストラップの束を使用するWiXの大きなプログラムを持っています。WiX:メジャーアップグレードでどのファイルが上書きされていないかを知る方法はありますか?
私はこの問題を抱えています。メジャーアップグレードを実行すると、以前のバージョンは消去されていません。つまり、バージョン1.0.0.xから1.1.0.xにアップグレードする場合、プログラム&機能は、両方のバージョンがマシンにインストールされていることを示しています。
これは一般的な問題です。多くの解決策がここにあります。彼らの誰も私のために働いていません - もしこれについての投稿があれば、試してみました。
メジャーアップグレードのコンポーネント間に1対1の関係があると言われました。つまり、削除されるコンポーネントごとに、別のコンポーネントを追加する必要があります。それが1対1の関係でない場合は、旧バージョンが削除されない場合です。古いコンポーネントがまだぶら下がっているためです。
どのコンポーネントが掛かっているかを判断する方法はありますか?ログファイルや何かのように?私はMSIが問題を抱えているかどうかを判断できれば、問題を解決するのにもっと積極的になるだろう。
EDIT:
私は問題を解決していないが、氏Urmanの提案のおかげで、私は正しい軌道上にあってもよいです。
私はそのレジストリキーを作成しましたが、何もしていないようです。しかし、私は言葉「禁止」のための私のアンインストールログを検索しなかった、と私はこのフレーズは9回が見つかりました:
PROPERTY CHANGE: Adding INSTALLLEVEL property. It's value is '1'.
:
Disallowing uninstallation of component: {GUID-HERE} since another client exists.
また、このフレーズは、「許可しない」というフレーズの各グループの前に表示されます
これは私に何かを与えます。しかし、私は言及されているGUIDを見つけることができない!彼らは私の解決策でもなく、レジストリで検索することもできません。レジストリを検索するほかに、特定のGUIDがどのコンポーネントに対応しているかを調べる方法(Windows 7 32ビット)がありますか?
メジャーアップグレードは間違いありませんが、私の製品バージョン番号の一部は変更されませんが、そのMSIを最初のインストールにのみインストールする必要があるためです。私は、レジストリにそのロギングポリシーのパスについての質問があります。最後の "フォルダ" - インストーラ - が自分のマシン(仮想マシンWin 7 32ビット)にありません。それを手動で作成し、手動で作成した "Installer"フォルダの中に値/データタプルを作成する必要がありますか? – Bob