Windows インストーラー パッケージによって追加されたレジストリ エントリ内の GAC 内のアセンブリへのパスを参照するにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/106414

質問

EnterpriseServices (COM+) を通じて ServicedComponent として登録され、サードパーティ アプリケーションによって COM RPC を通じて呼び出されるクラスを含む .NET アセンブリがあります。したがって、GAC に追加することと、次のレジストリ エントリを追加することの両方が必要です。 HKEY_CLASSES_ROOT\CLSID\{clsid}\CodeBase GAC フォルダー内のアセンブリ DLL へのパスに置き換えます。(これは 32 ビット アセンブリであり、32 ビットのサードパーティ コンポーネントに依存しているため、regsvcs に依存することはできません。また、以前に参照したサードパーティ アプリケーションではクラスを認識できません。 Wow6432ノード)

そこで質問は次のとおりです。

GAC で作成されるアセンブリへのパス、または少なくとも GAC フォルダー自体へのパスは、レジストリ キーの値などで使用できるプロパティとして Windows インストーラーで利用できますか?

役に立ちましたか?

解決

ファイルごとにコンポーネントがある場合は、コンポーネントの KeyPath はファイルがインストールされる場所 (この場合は GAC) を指します。コンポーネント キーは、MSI のレジストリ テーブルのエントリの値フィールドのトークンとして使用できます。

"assmb.dll" のファイル テーブルに File キーを持つアセンブリと、それに対応するコンポーネント (同じく "assmb.dll") があると仮定します。レジストリ テーブルの値フィールドを設定してアセンブリを [$assmb.dll] に登録すると、アセンブリのインストール場所に解決されます。このディレクトリが GAC の場合、GAC の場所に解決されます。

MSI のフォーマットされたフィールドの詳細については、こちらをご覧ください。 ここ.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top