0

heat を使用して必要なレジストリ キーを作成しようとしています。アセンブリは、.txt の末尾にコンテキスト メニューを追加する単純なダミーシェル コンテキスト ハンドラです。

Regasmを使用して登録すると、レジストリ キー (唯一のものではなく、異なるもの) がこれに追加されます。txtfile にあることに注意してください。

[HKEY_CLASSES_ROOT\txtfile\shellex] [HKEY_CLASSES_ROOT\txtfile\shellex\ContextMenuHandlers] [HKEY_CLASSES_ROOT\txtfile\shellex\ContextMenuHandlers\{1e25bcd5-f299-496a-911d-51fb901f7f40}] @="VBShellExtContextMenuHandler.FileContextMenuExt Class"

heat を使用する場合、このtxtfileは使用されません。.txt を使用します

[HKEY_CLASSES_ROOT\.txt\shellex] [HKEY_CLASSES_ROOT\.txt\shellex\ContextMenuHandlers] [HKEY_CLASSES_ROOT\.txt\shellex\ContextMenuHandlers\{1e25bcd5-f299-496a-911d-51fb901f7f40}] @="VBShellExtContextMenuHandler.FileContextMenuExt Class"

regasm が作成する他のキーは Heat と同じように見えますが、これはそうではなく、メニューが Heat キーで失敗することを意味します。

これは熱に関する既知の問題ですか?

簡単に変更できることはわかっていますが、これはテストであり、約 15 個の拡張機能を追加する必要があります。

4

1 に答える 1

0

ヘルプ トピックRegasm.exe (Assembly Registration Tool)の落とし穴を見てください。

.reg ファイルには、ユーザー定義のレジスタ関数によって作成できるレジストリの更新は含まれていないことに注意してください。/regfile オプションは、マネージ クラスのレジストリ エントリのみを出力することに注意してください。このオプションは、TypeLibID または InterfaceID のエントリを発行しません。

Heat と Regasm とのやり取りについて 100% 確信があるわけではありませんが、InstallShield の .NET Com Interop が Regasm /regfile を呼び出すことはわかっているので、この落とし穴が適用されます。

個人的には、これらのツールを自由に使える多くのツールの 1 つとしてのみ使用して、要件を収集し、すべてを整理してから、手作業で作成しています。

于 2014-09-02T18:43:30.930 に答える