我知道.NET框架在几个位置查找引用的DLL
的当前目录的任何专用路径
搜索这些位置的顺序是什么?如果找到匹配项,是否停止对DLL的搜索,还是继续搜索所有位置(如果是,如何解决冲突)?
另外,请确认或否认这些地点,并提供任何其他我没有提到的地点。
发布于 2008-09-08 16:10:17
程序集加载是一个相当复杂的过程,它取决于许多不同的因素,如配置文件、发布者策略、应用程序域设置、CLR主机、部分或完整程序集名称等。
简单的版本是GAC是第一个,然后是私有路径。从未使用%PATH%。
最好使用Assembly Binding Log Viewer (Fuslogvw.exe)来调试任何程序集加载问题。
http://msdn.microsoft.com/en-us/library/aa720133.aspx更详细地解释了这一过程。
发布于 2008-09-08 15:50:45
加载all时不再首先搜索当前目录!在Windows XP SP1中也做了此更改。现在的默认行为是先查找所有系统位置,然后查找当前目录,最后查找任何用户定义的路径。
(参考文献http://weblogs.asp.net/pwilson/archive/2003/06/24/9214.aspx)
应用程序可以更改的默认搜索顺序也在MSDN:http://msdn.microsoft.com/en-us/library/ms682586.aspx上进行了说明
https://stackoverflow.com/questions/49972
复制相似问题