【问题标题】:What do AssemblyVersion autoincrementing numbers mean?AssemblyVersion 自动递增数字是什么意思?
【发布时间】:2011-12-19 00:55:24
【问题描述】:

遵循系统生成的 AssemblyInfo.cs 文件的 cmets 中的建议:

// 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")]

我设置(仅用于测试):

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

构建后,我得到版本号:2.1.4321.42563
然后,在对 AssemblyInfo.cs 文件进行小改动并再次构建之后,我得到了下一个版本:2.1.4321.42710

我想知道所有这些数字 (4321.42563; 4321.42710) 是什么意思? 系统生成它们的模式是什么?

【问题讨论】:

    标签: visual-studio visual-studio-2010 version-control build


    【解决方案1】:

    4321 = 自 2000 年 1 月 1 日以来的天数
    42563 = 自午夜以来的秒数 / 2

    这使得 2011 年 10 月 31 日晚上 11:38:46。这是当地时间,没有夏令时调整。

    【讨论】:

    • 注意:仅当您使用通配符构建和修订版即 [assembly:AssemblyVersion("1.2.*")],如果您手动指定构建且仅通配符修订版即 [assembly:AssemblyVersion(" 1.2.15.*")] 你会得到一个随机的修订版
    • 嗯,这是一个错误。不保证您获得不同的版本号。在易于以设定的时间间隔启动构建的构建服务器上尤其棘手。永远不要这样做。
    【解决方案2】:

    内部版本号表示其构建日期,修订号在文档中是随机的,但实际上,正如 Hans 所指定的那样。

    您可以指定所有值,也可以接受默认构建 编号、修订号或两者都使用星号 ()。为了 例如,[assembly:AssemblyVersion("2.3.25.1")] 表示 2 作为 主要版本,3 作为次要版本,25 作为内部版本号,1 作为修订号。版本号,例如 [assembly:AssemblyVersion("1.2.")] 指定 1 作为主要版本, 2 作为次要版本,并接受默认的构建和修订 数字。版本号,例如 [assembly:AssemblyVersion("1.2.15.*")] 指定 1 作为主要 版本,2 作为次要版本,15 作为内部版本号,并接受 默认修订号。 默认版本号递增 日常的。默认修订号是随机的。

    来源:MSDN

    【讨论】:

    • 实际上,我观察到 [assembly:AssemblyVersion("1.2.15.*")] 将导致随机修订号,而 [assembly:AssemblyVersion("1.2.*")]将导致 Hans 描述的确定性模式(build = 自 2000 年以来的天数,rev = 自午夜以来的双秒)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-02-06
    • 2011-05-27
    • 2014-11-28
    • 1970-01-01
    • 2013-05-28
    • 2010-09-07
    • 2014-12-01
    相关资源
    最近更新 更多