如何不要求特定版本的程序集

时间:2012-07-13 21:43:45

标签: .net version .net-assembly

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

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

A不需要具体引用1.4.2,只需要大于1.4左右的任何内容。在A引用的属性中,B表示“特定版本=假”,但当我使用Me运行B v1.5时,我会找到FileLoadException寻找B v1.4.2 1}}。但是,B v1.5存在,如何减少CLR护理?

1 个答案:

答案 0 :(得分:2)

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