使用星号时导致程序集版本增加的原因

本文关键字:增加 版本 程序集 | 更新日期: 2023-09-27 18:23:48

如果我有一个程序集版本,例如:

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

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

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

使用星号时导致程序集版本增加的原因

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

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

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

同样值得注意的是,您确实尝试将日期放在版本号中。你已经知道,如果你让它选择构建编号,你总是可以根据结果对构建日期进行逆向工程。内部版本号是自2000年1月1日以来的天数,修订号是自午夜以来的秒数(无夏令时校正),除以2。

AssemblyVersionAttribute类:

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