【发布时间】:2012-07-13 21:43:45
【问题描述】:
我正在处理一个项目,该项目引用了一个引用程序集的程序集,如下所示:
Me
|- A
| |- B v1.4.2
|
|- B v1.5
A 不需要特别引用1.4.2,只要大于1.4 左右即可。在A 的引用属性中,B 说“特定版本= False”,但是当我使用B v1.5 运行Me 时,我得到一个FileLoadException 来寻找B v1.4.2。但是,B v1.5 存在,如何让 CLR 不关心?
【问题讨论】:
-
您需要在点 1.4.* 到 1.5 处添加一个bindingRedirect。
-
Redirecting Assembly Version 包含所有需要的背景信息
-
我看到了,但是有没有一种不同的方法来编译 A,这样它就不会关心它在运行时给出的 B 版本是什么?
-
@kelloti 程序集强名称是否已签名?
-
@kelloti 如果
B签名,我不相信没有绑定重定向的方法可以做到这一点。 CLR 认为版本对于签名程序集很重要,因此B 1.5和B 1.4.2与 C.dll 和 D.dll 一样不同。
标签: .net version .net-assembly