.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'的机制所在。