使用星号时导致Assembly Version递增的原因是什么?

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

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

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

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

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

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

或者换句话说,只使用1.0.*确实有意义,它会生成一个总是增加的版本号。 由于内部版本号总是更大。

还值得注意的是,您确实尝试将日期放在版本号中。 如果你让它选择内部版本号,你就可以得到它,你总是可以从结果中反向设计构建日期。 内部版本号是自2000年1月1日以来的天数,修订号是自午夜以来的秒数(无DST校正)除以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作为构建号,并接受默认修订号。 默认构建号每天递增。 默认修订号是随机的。