VS2005:如何使用日期自动生成构建版本号?

3
我有一个在Visual Studio 2005中使用C#编写的.NET 2.0应用程序,我希望自动生成正确版本的构建号,其中包含一个数字,可以让我猜测应用程序的构建日期。
我尝试使用Microsoft的'AssemblyInfo Task'工具,但默认情况下该工具无法正常工作。今天它会生成一个构建号“090227”,超过了65535的最大值,因此会生成错误。

我也可以使用包含年份和一年中的日期的构建号,例如01009表示2009年1月1日...
您知道如何解决这个问题吗?
我必须更新此“AssemblyInfo任务”的源代码,还是可以在VS2008等软件中实现?
谢谢您的帮助。
3个回答

3

您需要查看msbuildtasks。这是一组开源的msbuild任务。该模块有一个任务可以增加/修改/等构建号码。它也非常容易使用和扩展。


2

Visual Studio/C#/msbuild生成的默认自动构建号是从2000年1月1日起的天数,发布号是从午夜开始的每两秒增加的数量,因此您可以像这样向后计算构建的日期和时间:

new DateTime(2000, 1, 1).AddDays(assemblyName.Version.Build).AddSeconds(assemblyName.Version.Revision*2)

1

msbuildtasks 没有解决我的问题。正如描述中所解释的那样,我需要一种特殊的格式。而且,msbuildtasks 的文档也很难找到。
我通过添加一个新的增量类型“年和日”来修改了 AssemblyInfo Task 的源代码以满足我的需求:

case IncrementMethod.YearAndDay:
{
    DateTime dDate = DateTime.Now;
    long buildNumber = dDate.Year % 2000 * 1000;
    buildNumber += dDate.DayOfYear;
    string newVersionNumber = buildNumber.ToString();
    Log.LogMessage(MessageImportance.Low, logMessage, newVersionNumber);
    return newVersionNumber;
}

看起来是最简单的解决方案。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接