LoadFrom和上下文



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

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

我向AppDomain.CurrentDomain.AssemblyResolve添加了一个侦听器,该侦听器由发送方AppDomain调用,其中有一条消息说"没有上下文策略",并且ResolveEventArgs.RequestingAssembly属性设置为null

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

是的,我认为应该这样做,但leppie是正确的,事实并非如此。下面是一篇关于程序集探测序列的详细MSDN文章。有几次我遇到了完全相同的问题,使用AssemblyResolve事件是唯一的方法。

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

  • https://blogs.msdn.microsoft.com
  • https://learn.microsoft.com

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

相关内容

  • 没有找到相关文章

最新更新