アセンブリをGACに直接インストールする(たとえば、%windows%/ assemblyのどこかに深い)対処しなければならないパッケージがあります。
GACから通常のファイルシステムに実際のアセンブリ(DLL)を削除するにはどうすればよいですか?
ありがとう。
アセンブリをGACに直接インストールする(たとえば、%windows%/ assemblyのどこかに深い)対処しなければならないパッケージがあります。
GACから通常のファイルシステムに実際のアセンブリ(DLL)を削除するにはどうすればよいですか?
ありがとう。
回答:
この記事のアドバイスを使用して、GACからアセンブリを取得しました。
GACからDLLを取得する
GACに展開されたDLL(通常はc:\ windows \ assemblyにある)は、通常のDLLファイルとして表示または使用できません。VSプロジェクトから直接参照することはできません。開発者は通常、元のDLLファイルのコピーを保持し、開発(設計)時にプロジェクトでそれを参照します。これは、プロジェクトの実行時にGACからのアセンブリを使用します。
実行時(実行時)にアセンブリが署名され、GACに展開されていることが判明した場合、CLRは、VSの設計時に参照されるDLLではなく、GACからアセンブリを自動的に取得します。開発者が元のDLLを削除したか、何らかの理由でそれを持たない場合、GACからDLLファイルを取得する方法があります。GACからDLLをコピーするには、次の手順に従います。
regsvr32 / u C:\ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727 \ shfusion.dllを実行します。
- shfusion.dllは、GACフォルダーを明確に見せるエクスプローラー拡張DLLです。このファイルの登録を解除すると、アセンブリキャッシュビューアーが削除され、GACフォルダーはエクスプローラーの通常のフォルダーとして表示されます。
「%windir%\ assembly \ GAC_MSIL」を開きます。
DLLフォルダーを参照して、DLLを見つけます。
DLLをハードディスクのどこかにコピーし、プロジェクトのそこから参照します
"regsvr32%windir%\ Microsoft.NET \ Framework \ <。NET version directory> \ shfusion.dll"を実行して、shfusion.dllファイルを再登録し、GACの元の個別のビューを取り戻します。
shfusion.dll
サポートしていないようです。このオプションを省略すると、コンポーネントを正常に再登録できます。DllInstall()
regsvr32
/i
ここで説明する方法は非常に簡単です。
記事の要約:
\\YourServer\C$\Windows\Assembly
)にマップコマンドプロンプトを開き、次のように入力します。
cd c:\windows\assembly\GAC_MSIL
xcopy . C:\GacDump /s /y
これにより、GAC全体のダンプが得られます
楽しい!
はい。
DisableCacheViewerレジストリキーを追加する
HKLM \ Software \ Microsoft \ Fusion \の下にDisableCacheViewerという名前で新しいdwordキーを作成し、[DWORD]値を1に設定します。
Windowsエクスプローラーに戻り、アセンブリフォルダーに移動すると、通常のファイルシステムビューになります。
私が見つけた簡単な方法は、コマンドプロンプトを開いて、目的のDLLが見つかるまで言及したフォルダーを参照することです。その後、copyコマンドを使用して、それを取得できます。Windowsエクスプローラには、このフォルダの「役立つ」特別なビューがあります。
オープンRUNは、その後入力し%windir%\assembly\GAC_MSIL
、これはフォルダの名前と、それを開いて、あなたのDLLへ移動することができ、その後のフォルダー]ビューで、あなたのDLLを開きます、あなたのdllファイルを検索し、簡単にそれをコピーします。
私はPowerShell GACの作成者です。PowerShell GACを使用すると、フォルダー構造の変更などのGAC内部に依存することなく、GACからアセンブリを抽出できます。
Get-GacAssembly SomeCompany* | Get-GacAssemblyFile | Copy-Item -Dest C:\Temp\SomeCompany
レジストリを変更したり、コマンドライン、PowerShell、その他のプログラムを使用したりせずにGACの内部を確認する方法を見つけたと思います。
(どこへでも)新しいショートカットを作成します。次に、ターゲットが次のようになるようにショートカットを変更します。
%windir%\assembly\GAC_MSIL\System
このショートカットを開くと、GAC(誰もが持っているはず)内のSystemフォルダーに移動し、上位のディレクトリに切り替えて、必要な他のフォルダーを参照できる(そしてdllファイルを表示できるなど)という素晴らしい副作用があります。
これをWindows 7およびWindows Server 2012でテストしました。
注:ショートカットの作成時にそのターゲットを使用することはできませんが、編集することはできます。
楽しい!
もう1つの方向-MSIファイルを解凍して、その方法で特典を取得するだけです。最終的なアンインストールからあなたを救います。。。
コマンドラインからのコピーは不要です。スタートウィンドウの検索でDLLの名前を入力しました。[もっと見る]を選択しました。GACの1つが検索ウィンドウに返されました。私はそれを右クリックして、ファイルの場所を開くと言いました。通常のWindowsエクスプローラで開きました。ファイルをコピーしました。私は窓を閉めた。できました。