我注意到我的系统上有关全局程序集缓存(GAC)的一些奇怪行为。我感兴趣的程序集是log4net Version = 1.2.11.0
gacutil /l "log4net"
的输出是:
C:\ Windows \ system32> gacutil / l“log4net”Microsoft(R).NET Global 程序集缓存工具。版本4.0.30319.1版权所有(c)Microsoft 公司。保留所有权利。
全局程序集缓存包含以下程序集:
log4net,Version = 1.2.10.0,Culture = neutral,PublicKeyToken = 1b44e1d426115821,processorArchitecture = MSIL
log4net,Version = 1.2.11.0,Culture = neutral,PublicKeyToken = 669e0ddf0bb1aa2a,processorArchitecture = MSIL项数= 2
但是,通过资源管理器shell(重启之前和之后)查看GAC只显示一个版本:
由于我的应用程序无法解析程序集,但在将其放入应用程序库(bin文件夹)时工作正常。根据{{3}},GAC将在之前的应用程序库中进行探测 - 这将指向程序集不在GAC中。
GAC中的log4net Version=1.2.11.0
也是如此?如果是这样,为什么我的应用程序无法找到它?
答案 0 :(得分:6)
您正在查看.NET 2.0 GAC,但是,log4net v1.2.11.0是.NET 4程序集。 .NET 4有自己的GAC,位于%winddir%\Microsoft.NET\Assembly
。检查那里的GAC_MSIL目录,我敢打赌你会找到它。