.NET 中 "*"(通配符)版本号的公式是什么?



假设我有一个版本号1.5.*,编译为1.5.4735.28467。

得到4735和28467的公式是什么?

请注意:替代工具/规则/方案/宏/加载项等以不同的方式控制版本控制;如果使用,它们显然会抹杀以下内容。

然而,在vanillaVisualStudio/.NET构建过程中,"*"版本是如何计算为.build.revision的:

指定版本时,至少必须指定主要版本。如果指定主要和次要,则可以为构建指定星号(*)。这将导致构建等于自2000年1月1日起的天数,并且修订将等于自当地时间午夜起的秒数除以2。

请参阅编码恐怖:艰难地确定生成日期和MSDN:AssemblyVersionAttribute。此默认扩展行为记录在AssemblyVersionAttribute类(BCL!)

中,而不是特殊的VS编译器行为(请参阅Daniel的评论),也不是专门的编译器行为。

以下是公式的一个实现(摘自Daniel的评论):

int Build = DateTime.Today.Subtract(new DateTime(2000, 1, 1)).Days;
int Revision = (int)DateTime.Now.Subtract(DateTime.Today).TotalSeconds / 2; 

最新更新