私はWiX3.6を使用して、いくつかのexeとdllをコピーし、いくつかのWindowsサービスをインストールし、いくつかのレジストリエントリを追加および削除するmsiを作成しています。
WiXは素晴らしく、関連付けられた.netマネージDLLに組み込まれている機能とカスタムアクションを使用して、必要なすべてのことを非常に簡単に実行できました。
しかし、最近、1つの厄介な問題が発生し始めました。
インストールはエラーなしで進行し、期待どおりに実行されますが、[プログラム機能]コントロールパネルまたはコマンドラインからアンインストールすると、製品エントリが[プログラム機能]リストに残ります。他のすべてのファイル、サービス、およびフォルダーは期待どおりに削除され、アンインストールはエラーが報告されることなく完了します。
アンインストールを2回実行すると、プログラム機能のエントリが削除されます。
インストールとアンインストールの詳細ログを使用し、プラットフォームSDKのWindowsインストーラー詳細ログアナライザーで両方を表示しましたが、エラーは報告されません。
困惑しました!
以前は正しくアンインストールされていたと思いますが、この動作を示し始めるために何をしたかを特定できません。
任意のアイデアをいただければ幸いです。
PS私はWindows764ビットマシンで実行していて、32ビットインストーラーを生成しています。
PPSログは大きすぎてここに含めることができません。プログラム機能リストからのエントリの削除を制御する、確認する必要のあるエントリを誰かにアドバイスできますか?
さらなる解明;
以下のクリストファーの回答からリンクを確認しましたが、状況は私のものと一致しませんでした。
最初のアンインストール後、エントリは[プログラム機能]リストに表示されなくなりますが、更新されるか、コントロールパネルを終了して戻ってくると、リストに再表示されます。レジストリエントリはまだ存在しているので(確認しました)、これがリストに表示される理由です。
2回目のアンインストールでは、レジストリからエントリが削除され、リストからも削除されます。