在.Net中检查程序集版本

在.Net中检查程序集版本,.net,assemblyversionattribute,.net,Assemblyversionattribute,我试图完全了解.NET中的程序集版本和强名称 我发现只有Major.Minor.Build用于版本匹配。我找不到任何可以证实/否认这一点的东西 程序集版本格式 ... 修订版: 具有相同名称的程序集, 主要版本号和次要版本号,但需要进行不同的修订 完全可互换。这将适用于修复 先前发布的程序集中存在安全漏洞 比如说: 程序集版本号是程序集标识的一部分,在绑定到程序集和版本策略中起着关键作用。。。版本检查仅对强命名程序集进行 这是否意味着1.0.0.0和1.0.0.1在强名称环境中是可互换的,但1.

我试图完全了解.NET中的程序集版本和强名称

我发现只有Major.Minor.Build用于版本匹配。我找不到任何可以证实/否认这一点的东西

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

比如说:

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

这是否意味着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.Minor.Build的内容。事实上,一个版本的所有四个组件都被使用

关键点是
旨在可互换
。它们是否可以互换取决于作者,作者可以自由尊重或忽略MS指南


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

“解决此问题的一种方法是让AssemblyVersion属性始终保持不变”-这并不总是可取的。例如,仅当AssemblyVersion已更改时,才会更新程序集下载缓存。谢谢。我不应该说“声明”。我应该说我不知道如何解释引用的部分到底影响了什么。