如果我有一个类似于这样的程序集版本:
[assembly: AssemblyVersion("2013.7.18.*")]
当读取版本号时,它通常是类似于2013.7.18.123
这样的格式。
是什么导致了最后一个数字的增加?
如果我有一个类似于这样的程序集版本:
[assembly: AssemblyVersion("2013.7.18.*")]
当读取版本号时,它通常是类似于2013.7.18.123
这样的格式。
是什么导致了最后一个数字的增加?
该版本号并不会递增,因为构建系统无法知道上一个版本号,所以它没有这种知识。你实际上得到的是一个随机数。它不是完全随机的,修订号是根据时间生成的。构建号也可以随机化,它是根据日期生成的。
请注意使用2013.7.18.*
的后果,您无法保证它是唯一的。如果您在完全相同的时间进行构建,则会得到完全相同的数字。它也不会自动成为一个更大的版本号,如果您先构建,则会回退版本号。这些不是版本号的好属性。
换句话说,只使用1.0.*
是有意义的,这将生成一个始终递增的版本号,因为构建号将始终较大。
值得注意的是,您确实尝试将日期放入版本号中。如果您让它选择构建号,您已经获得了此功能,您始终可以从结果反向工程构建日期。构建号是自2000年1月1日以来的天数,修订号是午夜以来的秒数(不考虑DST),除以二。
您可以指定所有值,也可以使用星号()接受默认的构建号、修订号或两者都接受。例如,[assembly:AssemblyVersion("2.3.25.1")] 表示 2 为主版本,3 为次版本,25 为构建号,1 为修订号。版本号如 [assembly:AssemblyVersion("1.2.")] 指定 1 为主版本,2 为次版本,并接受默认的构建和修订号。版本号如 [assembly:AssemblyVersion("1.2.15.*")] 指定 1 为主版本,2 为次版本,15 为构建号,并接受默认的修订号。默认的构建号每天递增。默认的修订号是随机的。