69

Visual Studio Command Prompt 2010 内から GacUtil.exe を実行して、dll (CatalogPromotion.dll) を GAC に登録しています。ユーティリティを実行するとと表示され、Assembly Successfully added to the cache実行gacutil /l CatalogPromotionDllすると GAC にアセンブリが含まれていることが示されますが、Windows エクスプローラから C:\WINDOWS\assembly に移動してもアセンブリが表示されません。 Windows エクスプローラーから WINDOWS\assembly のアセンブリを表示できないのに、gacutil.exe を使用すると表示できるのはなぜですか?


背景: VS Tools のコマンド プロンプトに入力した内容は次のとおりです。

    C:\_Dev Projects\VS Projects\bmccormack\CatalogPromotion\CatalogPromotionDll\bin
    \Debug> gacutil /i CatalogPromotionDll.dll
    Microsoft (R) .NET グローバル アセンブリ キャッシュ ユーティリティ。バージョン 4.0.30319.1
    Copyright (c) Microsoft Corporation. 全著作権所有。

    アセンブリがキャッシュに正常に追加されました

    C:\_Dev Projects\VS Projects\bmccormack\CatalogPromotion\CatalogPromotionDll\bin
    \Debug> gacutil /l CatalogPromotionDll
    Microsoft (R) .NET グローバル アセンブリ キャッシュ ユーティリティ。バージョン 4.0.30319.1
    Copyright (c) Microsoft Corporation. 全著作権所有。

    グローバル アセンブリ キャッシュには、次のアセンブリが含まれています。
      CatalogPromotionDll、バージョン = 1.0.0.0、カルチャ = ニュートラル、PublicKeyToken = 9188a175
    f199de4a、プロセッサ アーキテクチャ = MSIL

    アイテム数 = 1

ただし、アセンブリは C:\WINDOWS\assembly に表示されません。

4

3 に答える 3

111

これは、gacutil.exe の .NET 4.0 バージョンを使用しているためです。アセンブリは、c:\windows\microsoft.net\assemblyにある別のGACに格納されます。すべての .NET 4.0 アセンブリが格納される場所。そのためのシェル拡張ハンドラーはありません。フォルダーはそのまま表示されます。Windows エクスプローラーを使用すると、GAC フォルダーの内部構造を確認できます。アセンブリを元に戻すのに問題はありません。GAC は特に複雑ではありません。

アセンブリが以前のバージョンの .NET を対象とするアプリで使用されることを意図している場合は、C:\Program Files\Microsoft SDKs\Windows\v6.0A\ に格納されている .NET 2.0 バージョンの gacutil.exe を使用する必要があります。置き場

于 2010-06-16T17:40:52.560 に答える