程序集文件中的版本号
一个.net程序集支持三种版本它,它都是使用特性的方式在源代当中指定的,然后由编译器/链接器将它们嵌入到.net程序当中(程序文件)。这三种版本号对应的特性名称和其作用如下所示: AssemblyFileVersion:这个特性所标识的版本号对应传统Win32程序的文件版本号。CLR本身并不使用此版本号。 AssemblyInformation:这个特性所标识的版本号对应传统Win32程序的产品版本号。CLR本身并不使用此版本号。 AssemblyVersion:这个特性标识的版本号为CLR本身所识别的版本号,CLR通过这个版本号来确定程序集的版本。 这里需要注意的是,AssemblyFileVersion的build位和fix位应该是一个第次重新编译后都有所不同的版本号,程序的用户暨以此版本号来区分一个主版本号(由Major和Minor组成的版本号)内程序集的不同。而AssemblyVersion版本号则是应该在一个主版本号内固定不变的,因为CLR是使用此版本号来确定加载程序集的。
有的时候我们可能不光需要知道程序集的编译版本,还可能需要 知道关于编译的更详细的信息,比如大概编译的时间等。 那么怎么做呢,难道需要每次编译时都要改版本号吗, .net提供了一个简单的方法,把版本号如下这样设置就可以了。 [assembly: AssemblyVersion("1.0.*")] 前两位的主版本号和次版本号根据需要设定,第3位和第4位(编译版本号和修改号) 只要设成*号就可以了。每次编译的时候.net会自动设上对应的数字。 第3位表示当前日期自2000年1月1日以来的天数。 第4位表示自0点0分0秒开始的秒数。 通过查看程序集的属性可以看到生成的版本号。 或者在程序中通过Assembly.GetExecutingAssembly().GetName().Version可以取到。
一、 版本号自动生成方法
只需把 AssemblyInfo.cs文件中的[assembly: AssemblyVersion("1.0.0.0")]改成[assembly: AssemblyVersion("1.0.*")],另外还需要把[assembly: AssemblyFileVersion("1.0.0.0")]注释屏蔽掉。这样再生成的程序集就是自动版本号了。 按照这个格式出来的版本号,内部修订版本号(第三个字段)的位置出现的是2000年1月1日到编译日期的天数,内部修订号(第四个字段)是当天从0点到当前时间的刻度数。

浙公网安备 33010602011771号