.Net汇编映射策略的目的

时间:2015-11-13 17:13:45

标签: c# .net .net-assembly

进行汇编映射的原因/目的是什么?改变版本政策?据我所知,如果您的app.exe想要使用新的程序集版本,您可以重定向程序集版本,但为什么要这样做?新版本的依赖装配会不会发生变化?

假设有一个calc.dll和app.exe。 app.exe依赖于calc.dll。如果重建了calc.dll并重命名了一堆方法,那么当重定向到calc.dll新版本时,app.exe会失败吗?

1 个答案:

答案 0 :(得分:2)

由于关心客户的作者努力保持同一组件的接口/类型向后兼容,因此使用相同组件的较新版本通常不是问题。

主要问题是其他程序集,具体取决于旧版本。

让我们说有共同的“Shared.dll”有多个兼容版本(众所周知的示例--JSON.Net),您的代码以及您的代码所需的其他DLL也使用它:

ThridParty.dll (v1) -> Shared.dll (v1)
YourApp.exe -> Shared.dll (latest = v5), ThirdParty.dll (v1)

现在你需要2个版本的Shared.dll,但它们都有相同的文件名(通过手动加载一个可解决)和无法使用混合版本生成的对象(v1中的Shared.Type1与v5中的Shared.Type1不同) .Net规则)。

要解决您使用程序集重定向并说“每当有人要求Shared.dll v1使用Shared.dll v5”时。这样ThridParty.dll继续正常工作,你不再遇到同时加载2个文件/版本的问题。