4

アセンブリがあります:SomeAssembly.dll

パスにGACUtilのフォルダーがあります:C:\ Program Files(x86)\ Microsoft SDKs \ Windows \ v7.0A \ Bin \ NETFX 4.0 Tools

SomeAssembly.dllがあるフォルダに移動し、実行します

GACUtil /i SomeAssembly.dll

応答は次のとおりです。

Microsoft (R) .NET Global Assembly Cache Utility.  Version 4.0.30319.1
Copyright (c) Microsoft Corporation.  All rights reserved.

Assembly successfully added to the cache

C:\ Windows \ Assemblyを確認しましたが、アセンブリが表示されません。

コマンドウィンドウ(管理者権限があることに注意)に戻り、次のように入力します。

GACUtil /l SomeAssembly.dll

そして応答は確認します...

Microsoft (R) .NET Global Assembly Cache Utility.  Version 4.0.30319.1
Copyright (c) Microsoft Corporation.  All rights reserved.

The Global Assembly Cache contains the following assemblies:

Number of items = 0

したがって、SomeAssembly.dllはGACに含まれていないようです

なんで?

4

1 に答える 1

8

使用するときは.dll拡張機能を省略しgacutil /lてください。そうすれば、アセンブリが正しく報告されます。

また、何らかの32/64ビットの取り違えが起こっているのではないかと思います。C:\Windows\AssemblyWindowsエクスプローラーで表示している場合、32ビットGACのみが表示されている可能性があります。

[更新: .NET 4はGACアセンブリを格納しているように見えるC:\Windows\Microsoft.NET\assemblyため、CLRv2.0アセンブリのみが表示されC:\Windows\assemblyます。]

(v2 CLR)GACディレクトリの実際の内容を確認するには、Explorerシェル拡張機能を使用せずに表示します。これを行う簡単な方法は、を使用してドライブをディレクトリにマップし、substそれを介して表示することです。

C:\>subst G: c:\Windows\assembly
C:\>start G:
于 2013-01-08T17:38:56.330 に答える