程序集版本签入网



我正在努力全面了解程序集版本和强名称。净

我发现这篇程序集版本控制文章中只提到了少校。少数的版本匹配中使用内部版本。我找不到任何可以证实/否认这一点的东西。

程序集版本格式。。。修订:
具有相同名称的程序集,主要版本号和次要版本号,但要进行不同的修订以完全可互换。这将适合修复先前发布的程序集中的安全漏洞。

MS文章说:

程序集版本号是程序集标识的一部分,在绑定到程序集和版本策略中起着关键作用。。。版本检查仅发生在强命名程序集中。

这是否意味着1.0.0.0和1.0.0.1在强名称环境中是可互换的,而1.0.1.1不是?

请问确切的答案是什么?

在比较版本时,将完全评估程序集的AssemblyVersion-属性。这意味着更改版本号的一部分将导致程序集不匹配。

解决此问题的一种方法是让AssemblyVersion-属性始终保持不变,例如设置为[AssemblyVersion("1.2.3.0")],并使用AssemblyFileVersion-属性更改版本,例如修订版,例如[AssemblyFileVersion("1.2.3.20120909")]。这使您可以在不更新所有引用的情况下更新强名称程序集的版本。

我在链接的文章中没有发现任何内容表明只有Major。少数的版本匹配中使用内部版本。事实上,一个版本的所有四个组件都被使用了。

关键是intended to be interchangeable。它们是否可以实际互换取决于作者,作者可以自由尊重或忽略MS指南。

安装在GAC中的共享程序集的供应商可以提供发布者策略文件,以将程序集的旧版本重定向到新版本。只有当新版本与旧版本向后兼容时,他才应该这样做。

最新更新