如何让.NET首先在本地文件夹中查找程序集而不是GAC?

时间:2009-05-05 21:36:13

标签: .net asp.net assemblies gac

据我所知,.NET运行时总是首先在GAC中查找引用的程序集,然后在本地文件夹中查找。 Web.Config中是否有可以反转此顺序的设置?

4 个答案:

答案 0 :(得分:17)

没有。实现这一目标是不可能的。如果在GAC中存在与程序中引用的版本相同的DLL,则CLR将始终选择此版本。无法覆盖此行为。

答案 1 :(得分:3)

更多信息。关于this SO thread中的解决方法。

答案 2 :(得分:2)

我不确定是否会有一些实际上会反转搜索顺序的内容,但根据您的要求,您可能需要查看assembly binding redirection,这可以让您对哪些版本的程序集进行大量控制装了。

答案 3 :(得分:1)

JaredPar是对的 - GAC将始终首先对程序集进行轮询。但是,如果您像我一样,并希望将DLL存放在GAC中并仍然进行调试,则可以添加构建脚本以将.pdb文件转储到与GAC中的程序集相同的文件夹中(它将在C:\ windows \ assembly \ gac_msil \ assembly.name_ [公钥标记])。