默认程序集绑定行为

时间:2011-06-06 08:16:10

标签: c# assemblies assemblybinding

我们正在构建一个存储在程序集中的API,我们称之为MyAssembly.dll

此程序集的AssemblyVersion为1.0.0.0

我希望,在发布新版本的程序集时,之前编译引用到1.0.0.0版本的代码会破坏,因为程序集绑定会失败(没有像bindRedirect这样的额外帮助)。

在实践中,我看到的是绑定实际上是成功的。

我已经通过构建具有各种不同版本的MyAssembly.dll并尝试运行引用1.0.0.0的各种代码来测试它

这是默认行为吗?绑定到 EXACT 版本是仅从强名称(签名)程序集发生的吗?

感谢。

1 个答案:

答案 0 :(得分:1)

How the runtime locates assemblies

“默认情况下,运行时尝试使用构建应用程序的程序集的确切版本进行绑定。配置文件设置可以覆盖此默认行为。”

(...)

“注意:没有强名称的程序集没有版本检查,运行时也没有检查全局程序集缓存中没有强名称的程序集。”