【发布时间】:2011-11-04 20:38:27
【问题描述】:
我有一个程序集A,此程序集动态加载程序集B、C 和E。以后还会加载更多。
问题一:B 引用F 和G,当我尝试在B 中声明的类型的实例中执行方法时,来自A ,我收到一个异常,告诉我当然没有找到 F。
问题:
- 动态加载程序集时如何引用
F和GB,假设F和G与B在同一个文件夹中? - 动态加载程序集时如何引用
F和GB,假设F和G在不同的文件夹中?
问题二:
这很大程度上是因为在尝试快速测试某些功能时,我将引用的程序集从 B 的二进制文件夹复制到 A 的,这导致了以下异常:
无法加载文件或程序集'log4net,版本=1.2.10.0, Culture=neutral, PublicKeyToken=1b44e1d426115821' 或其之一 依赖关系。定位程序集的清单定义不 匹配程序集引用。 (HRESULT 异常:0x80131040)
我认为这是因为我使用的 log4net 版本与 B 的依赖项之一不同。
问题:强>
我可以采取什么措施来避免此类版本控制问题?
修复问题一会解决这个问题吗?如果不是,为什么?
我应该为此使用 Autofac 吗?
它会帮助我吗?如何?
请记住,Assembly A 的想法是采用“插件”,并且按照该顺序,不能以声明方式指向 Assemblies 或其依赖项
【问题讨论】:
-
您是否能够解决您的第一个问题?选择的答案似乎只针对第二个..
标签: c# dll dynamic assembly-resolution