4

我有一个正在处理的项目,它引用了一个引用程序集的程序集,如下所示:

Me
 |- A
 |  |- B v1.4.2
 |
 |- B v1.5

A 不需要1.4.2特别引用,只要大于1.4或等于。在A的引用属性中,B 说“特定版本 = False”,但是当我使用 运行MeB v1.5,我会FileLoadException寻找B v1.4.2. 但是,B v1.5目前,我如何让 CLR 关心的更少?

4

1 回答 1

2

尽管绑定重定向是这里的方法,但有时这是不可能的 - 即如果您在另一个 EXE 中加载插件。我们采用的一个实际解决方案是挂钩AppDomain.CurrentDomain.AssemblyResolve事件,监听到 myassembly1.4.2.dll 的失败绑定(例如),然后显式返回调用返回的程序集System.Reflection.Assembly.LoadFrom("c:\assemblies\myassembly.1.5.0.dll")。绑定重定向更好,但有时并不实用。

于 2012-10-03T22:56:57.257 回答