LoadFrom和上下文

时间:2012-02-02 18:37:01

标签: .net reflection assemblies appdomain assembly-loading

我正在通过Assembly.LoadFrom加载程序集(A),该程序集存储在应用程序基本路径之外;我加载的程序集引用另一个.net程序集(B)在同一目录中。

当我尝试使用A程序集的某些方法时,Fusion日志显示系统正在尝试从应用程序基目录而不是A.dll的父目录加载B.dll。

我向AppDomain.CurrentDomain.AssemblyResolve添加了一个侦听器,该侦听器与发件人AppDomain一起调用,其中包含“没有上下文策略”的消息,并且ResolveEventArgs.RequestingAssembly属性设置为{{ 1}}。

null不应该允许在其父目录中搜索程序集的依赖项吗?

2 个答案:

答案 0 :(得分:3)

是的,我认为应该但是leppie是正确的,但事实并非如此。以下是有关assembly probing sequence的详细MSDN文章。有几次我有完全相同的问题,使用AssemblyResolve事件是唯一的方法。

答案 1 :(得分:0)

嗯,实际上应该!确实如此。参见:

虽然CLR仍尝试使用GAC和appbase目录解析程序集(A)的依赖项,但它还会在从中加载文件夹(A)中查找。