我有一个引用.NET DLL的C#应用程序
如果此DLL在我的应用程序的bin
目录和GAC中都存在,那么
哪一个将在运行时由CLR拾取?如果GAC有最新版本,是否会使用该版本而不是bin
中的版本?
如何强制CLR始终使用bin
而不是GAC中的那个?
CLR检查全局程序集缓存,配置文件中指定的代码库,以及 然后检查应用程序的目录和子目录。
那么,这是否意味着它首先考虑GAC? 感谢。
答案 0 :(得分:1)
您强制CLR 不在GAC中使用程序集的副本,而不是在GAC中。通过重命名DLL或在项目中引用DLL之前更改其[AssemblyVersion],可以轻松完成。跳过此操作会调用令人讨厌的运行时异常,也称为DLL Hell。