.Net程序版本号的含义和版本控制机制

.net程序版本号的格式是4端十进制数字

比如

2.5.729.2

他们依次是

Major Number:主版本号

Minor Number:副版本号

这两个号码是对外的版本号,也就是说上面这个程序是2.5版的

Building Number:编译版本号

比如如果一天编译一次的话,那么每天编译版本号加一,上边的程序经过了729天的开发。

Revision Number:再版版本号

比如某一天的一次编译有重大的bug,在编译就是这版本号加一。

所以后两个版本号是内部版本号。

这是微软公司使用的版本号模式,在开发中最好遵守。

编程时可以获得的三个版本号及其区别:

使用Visual Studio 编程时,生成的AssembIyInfo.cs中可以加入以下信息,并自动更新版本号。

AssemblyFileVersion

C#自定义属性

[assembly: AssemblyFileVersion("1.0")]

AssemblyInformationalVersion

C#自定义属性

[assembly: AssemblyInformationalVersion("1.0.*")]

CLR并不关心上面这两个属性,他们只是一个描述性的信息,编译后他们存储在Win32 Version Resources中

AssemblyVersion

C#自定义属性

[assembly: AssemblyVersion("1.0.*")]

当命名强类型的数据集时C#使用这个版本号,编译后他被存储在AssemblyDef manifest datable中

这个版本号是很重要的,他是一个程序集的唯一标识

同样的当我们引用一个现有的.net程序集的时候,它的版本号被编译到AssemblyRef table中,也就是说,只有能够在指定的路径找到指定的文件而且他的版本号是正确的,.net程序才可以正常运行。引用程序集更换版本号,必须更新引用,并且重新编译。这应该就是.net避免以往Win32程序'Dll Hell'的机制所在。

原文地址:https://www.cnblogs.com/oyjj/p/2133014.html