2

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

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

我向 中添加了一个侦听器AppDomain.CurrentDomain.AssemblyResolve,该侦听器由发送者调用,并显示AppDomain一条消息“没有上下文策略。”,并将ResolveEventArgs.RequestingAssembly属性设置为null

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

4

2 回答 2

3

是的,我认为它应该,但 leppie 是正确的,它没有。这是有关装配探测序列的详细 MSDN 文章。有好几次我遇到了完全相同的问题,并且使用 AssemblyResolve 事件是唯一的方法。

于 2012-02-05T05:59:47.860 回答
0

嗯,实际上应该!它确实如此。看:

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

于 2019-01-19T10:58:49.677 回答