程序集版本的详细信息

10

我们将从每个库的Assembly.cs文件中找到程序集版本。

[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]
我的问题是,1.0.0.0 这个东西是什么意思?
谢谢。

1
可能是重复的问题:你如何为你的项目进行版本控制? - Igor Zevaka
4个回答

34

如文件本身所述:

// Version information for an assembly consists of the following four values:
//
//      Major Version
//      Minor Version 
//      Build Number
//      Revision
//
// You can specify all the values or you can default the Build and Revision Numbers 
// by using the '*' as shown below:
//[assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]

通过按如下方式更改此内容:

// You can specify all the values or you can default the Build and Revision Numbers 
// by using the '*' as shown below:
[assembly: AssemblyVersion("1.0.*")]
//[assembly: AssemblyVersion("1.0.0.0")]
//[assembly: AssemblyFileVersion("1.0.0.0")]

你将获得最后两个部分的自动设置 (Build NumberRevision)。这个自动增量的工作方式如下:

  • Build Number: 自公元2000年1月1日以来的天数
  • Revision: 当天午夜以来的秒数除以二

最后但并非最不重要的,如果你使用 Subversion 作为源代码控制系统,你可以创建一个模板文件(将原文件复制一份并取其他名称),在所需位置替换如下内容:

[assembly: AssemblyVersion("1.0.$WCREV$.0")]

在项目的预先构建事件中,您将输入类似于以下内容的内容:

SubWCRev "$(ProjectDir)\" "$(ProjectDir)Properties\AssemblyInfo.template.cs" "$(ProjectDir)Properties\AssemblyInfo.cs"

将当前Subversion版本号添加到应用程序的版本信息中。


4
小修改:修订版本号=距午夜以来的秒数除以二。原因是一天有86400秒,版本号限制为16位整数,所以一天最多只能得到65535个版本号。 - Dave

3
AssemblyInfo.cs文件中,四个数字的含义如下:
// Version information for an assembly consists of the following four values:
//
//      Major Version
//      Minor Version 
//      Build Number
//      Revision

3
主版本号,次版本号,构建号,修订号。

2
版本号由四个部分组成:主版本号、次版本号、构建版本号和修订版本号。
前两个部分的主版本号和次版本号是用户通常看到的版本号,主要变化是用于非常大的更改,而每个全新发布给用户的版本,次版本号都会增加。
后两个部分的构建版本号和修订版本号是版本号的扩展,适用于IT人员。默认情况下,这些是自一个随机指定的开始日期以来经过的天数,修订版本基于自午夜以来的秒数。
我们实际上使用日期版本来作为构建值,并在单一天内发布修订版本(虽然我们可能将其移动到svn修订号)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接