【问题标题】:What causes Assembly Version incrementation when using asterisk?使用星号时是什么导致程序集版本增加?
【发布时间】:2013-07-17 04:47:29
【问题描述】:

如果我有一个汇编版本,例如:

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

读取此版本号时,将类似于2013.7.18.123

是什么导致最终数字递增?

【问题讨论】:

    标签: c# .net .net-assembly assemblyversions


    【解决方案1】:

    递增,这需要构建系统知道以前的版本。它没有这样的知识。你基本上得到一个随机数。这不是随机的,修订号是从一天中的时间生成的。内部版本号也可以是随机的,它是从日期生成的。

    请注意使用2013.7.18.* 的后果,您无法保证它是唯一的。如果您曾经在完全相同的时间构建,那么您将获得完全相同的数字。它也不会自动成为一个更大的 版本号,更早构建,你会倒退。这些不是版本号的重要属性。

    或者换句话说,只有使用1.0.* 才有意义,它会生成一个始终增加的版本号。因为内部版本号总是会更大。

    还值得注意的是,您确实尝试将日期放在版本号中。你已经明白了,如果你让它选择内部版本号,你总是可以从结果中对构建日期进行逆向工程。内部版本号是自 2000 年 1 月 1 日以来的天数,修订版号是自午夜以来的秒数(没有 DST 更正)除以 2。

    【讨论】:

      【解决方案2】:

      AssemblyVersionAttribute Class:

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

      【讨论】:

      • 是的,Wisenheimer 先生,如果您能启发好心的读者,您认为引用文档的哪一部分(截至三年前)是错误的,您的评论会很有帮助。
      • 如前所述,您可以在其他答案中阅读。主要是The default revision number is random. 和建议的[assembly:AssemblyVersion("1.2.15.*")](如果修订被星号掩盖,则会导致奇怪的错误)。
      猜你喜欢
      • 2011-06-07
      • 1970-01-01
      • 2013-05-16
      • 1970-01-01
      • 2016-07-23
      • 2023-03-23
      • 2010-09-06
      • 1970-01-01
      • 2017-09-11
      相关资源
      最近更新 更多