1. ホーム
  2. .net

[解決済み] GACからアセンブリを抽出する方法は?

2022-06-04 10:37:41

質問

GAC に直接アセンブリをインストールするパッケージがあります (例: %windows%/assembly のどこか深いところ)。

実際のアセンブリ (DLL) を GAC から通常のファイル システムに追い出すにはどうしたらよいでしょうか。

ありがとうございます。

どのように解決するのですか?

私は この記事 のアドバイスを使用して、GAC からアセンブリを取得しました。

GACからDLLを取得する

DLLは一度 は、GAC (通常、次の場所にあります) に展開されます。 に配置された DLL は、通常の DLL ファイルとして表示または使用することはできません。 通常の DLL ファイルとして見ることも使用することもできません。また を直接参照することはできません。 プロジェクトからは直接参照できません。開発者は通常、元のDLLファイルのコピーを保存しておき 元のDLLファイルをコピーしておき プロジェクト内で参照します。 開発(設計)時にプロジェクト内で参照し、実行時に プロジェクトの実行時にGACからアセンブリを使用します。 プロジェクトの実行時に GAC からアセンブリを使用します。

実行時 (ランタイム) に アセンブリが署名され GAC に配置された場合、CLR は自動的に GAC からアセンブリをピックアップします。 GAC からアセンブリをピックアップします。 設計時に参照された DLL の代わりに の代わりにGACからアセンブリを自動的にピックアップする。万が一、開発者が 開発者が元のDLLを削除してしまった場合 を削除してしまったり、何らかの理由で持っていない場合。 GACからDLLファイルを取得する方法があります。 をGACから取得する方法があります。以下の手順で GACからDLLをコピーする

  1. 実行 regsvr32 /u C:\WINDOWSMicrosoft.NETFrameworkv2.0.50727shfusion.dllを実行します。

    • shfusion.dll はエクスプローラー拡張 DLL で、GAC フォルダーに独特の外観を与えます。 の外観を与えます。登録を解除すると このファイルの登録を解除すると、アセンブリ キャッシュ ビューアーが削除され キャッシュ ビューアーが削除され、GAC フォルダーが通常のフォルダーとして表示されます。 エクスプローラで通常のフォルダと同じように表示されます。 としてエクスプローラーで表示されます。
  2. %windir%assemblyGAC_MSIL" を開いてください。

  3. DLLフォルダをdeepにブラウズして、DLLを探します。

  4. DLL をハードディスクのどこかにコピーし、そこからあなたの プロジェクトで参照します。

  5. Regsvr32 %windir%Microsoft.NETFramework***.NET のバージョン ディレクトリを実行します。 version directory> \shfusion.dll" を実行してください。 shfusion.dllファイルを再登録してください。 GACの元の明確なビューを取り戻す を再登録し、GACの元の明確なビューを取り戻します。