汇编存在于GAC中,但系统仅在复制到本地目录时才发现它。为什么?

时间:2012-10-10 22:35:51

标签: .net gac .net-assembly

我的情况类似于详细的here,它也有一个很好的解决方案。     我解决错误的方式与帖子中的方式不同。我不确定为什么它解决了这个问题。我很好奇理解为什么。

我的情况 - 我有一个原生的32位程序集A.exe正在加载System.Data,而System.Data又加载了System.Numerics。 System.Numerics发生了“无法加载程序集”。 System.Numerics程序集存在于GAC中,我确保使用融合日志查看器,预期程序集的公钥令牌和GAC中的公钥令牌匹配。但是融合日志仍然会说GAC查找不成功。

当我将System.Numerics程序集从GAC位置复制到A.exe目录时,问题就消失了。我很好奇为什么这解决了这个问题以及为什么GAC查找不成功。

1 个答案:

答案 0 :(得分:0)

如果您正在 64位计算机上进行开发并在解决方案中的任何项目上使用“使用任何CPU ”,则默认情况下会加载GAC程序集的 64 即可。为避免这种情况,您可以使用仅限32位将所有项目设置为编译。这样,只会使用32位GAC。