C# 使用星号时,是什么导致程序集版本增加?

C# 使用星号时,是什么导致程序集版本增加?,c#,.net,.net-assembly,assemblyversions,C#,.net,.net Assembly,Assemblyversions,如果我有一个程序集版本,例如: [assembly: AssemblyVersion("2013.7.18.*")] 当读取此版本号时,它将类似于2013.7.18.123 是什么导致最终数字增加的?: 可以指定所有值,也可以使用星号()接受默认版本号、修订号或两者。例如,[assembly:AssemblyVersion(“2.3.25.1”)]指示2为主要版本,3为次要版本,25为版本号,1为修订号。诸如[assembly:AssemblyVersion(“1.2”)]之类的版本号指定1为

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

[assembly: AssemblyVersion("2013.7.18.*")]
当读取此版本号时,它将类似于
2013.7.18.123

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

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


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

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

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


值得注意的是,您确实尝试将日期输入到版本号中。你已经知道如果你让它选择构建编号,你总是可以从结果中逆向工程构建日期。版本号是自2000年1月1日起的天数,修订号是自午夜起的秒数(无DST修正),除以2。

是的,Wisenheimer先生,如果你能启发读者,你的评论会很有帮助(三年前)你认为是错误的文档。如前所述,你可以用另一个答案来阅读。主要是
默认版本号是随机的。
和建议的
[汇编:AssemblyVersion(“1.2.15.*”)]
(如果版本被星号掩盖,则会导致奇怪的错误)。