我注意到我的系统上有一些关于全局程序集缓存 (GAC) 的奇怪行为。我感兴趣的程序集是 log4net Version= 1.2.11.0
的输出gacutil /l "log4net"
是:
C:\Windows\system32>gacutil /l "log4net" Microsoft (R) .NET 全局程序集缓存实用程序。版本 4.0.30319.1 版权所有 (c) Microsoft Corporation。版权所有。
全局程序集缓存包含以下程序集:
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
然而,通过 explorer shell(重启前后)查看 GAC 只显示一个版本:
更复杂的是,我的应用程序无法解析程序集,但是当我将它放入应用程序库(bin 文件夹)时可以正常工作。根据这篇文章,GAC 将在应用程序库之前进行探测- 这将指向程序集不在 GAC 中。
log4net Version=1.2.11.0
在 GAC 中也是如此吗?如果是这样,为什么我的应用程序找不到它?