0

この 32 ビット ソフトウェア パッケージは、Win XP と Win 7 の両方のマシンにインストールされています。

私が見ている現在の問題は、パッケージの一部をインストールするときに、パッケージ内の実行可能ファイルを Windows コンテキスト メニューに追加するためにレジストリ値が書き込まれることです。これらのレジストリ値は、プロセスの一部である dll (つまり、実行可能ファイルの dll) からの熱によって生成される wix フラグメントの一部です。

問題は、Windows 7 に組み込まれた Windows XP で動作する一方で、アプリケーションがコンテキスト メニューに表示されないだけでなく、何かが壊れて、すべてのコンテキスト メニューから [新しいフォルダー] オプションが削除されることです。アプリケーションのアンインストールは機能しませんが、次のサイトからレジストリ設定を追加することで修正できます: http://social.technet.microsoft.com/Forums/en-IE/w7itprogeneral/thread/97de8a2a-12f2-4381- a409-a78f4ae551cf

もちろん、新しいビルドをインストールすると、それは再び消去されます。開発者として、1 日に 5 ~ 6 個のビルドをインストールおよびアンインストールすることがあります。インストーラーからそれらを削除してビルドおよびインストールすることにより、それがこれらの特定のレジストリ設定であることを確認しました。「新しいフォルダー」オプションはそのまま残ります。

私の質問は次のとおりです。Windows 7 のコンテキスト メニューに追加される 32 ビット アプリケーション/dll に書き込むための有効なレジストリ値を熱で生成することに問題はありますか? (完全な開示のために、私はwin7 64ビットを使用していますが、win7 32ビットでも同じ問題がありましたが、vistaは試していません)

4

1 に答える 1

0

Heat は、DllRegisterServer() 呼び出し中に書き込まれたレジストリ キーをキャプチャするだけです。予期したレジストリ キーを取得できない場合は、DllRegisterServer() コードを調べて、その動作を確認してください。また、一度レジストリ キーをキャプチャし、それらが正しいことを確認してから、heat.exe を使用しない方が便利な場合があります。

それが私の好みのアプローチです。

于 2012-02-20T21:05:59.647 に答える