C# VS2005:如何自动生成带有日期的版本号?

C# VS2005:如何自动生成带有日期的版本号?,c#,.net,msbuild,build-process,versioning,C#,.net,Msbuild,Build Process,Versioning,我在Visual Studio 2005中有一个.net 2.0 C#应用程序,我希望自动为其生成正确的版本版本号,该版本号应包含一个允许我猜测应用程序的生成日期的数字。 我尝试使用Microsoft提供的工具,但默认情况下,此工具不起作用。今天,它将生成一个版本号“090227”,超过了最大值65535,因此生成一个错误。 我还可以使用包含年份和日期的版本号,比如2009年1月1日的09001… 你知道这个问题的解决办法吗? 我是否必须更新此“AssemblyInfo任务”的源代码,或者这是否

我在Visual Studio 2005中有一个.net 2.0 C#应用程序,我希望自动为其生成正确的版本版本号,该版本号应包含一个允许我猜测应用程序的生成日期的数字。
我尝试使用Microsoft提供的工具,但默认情况下,此工具不起作用。今天,它将生成一个版本号“090227”,超过了最大值65535,因此生成一个错误。

我还可以使用包含年份和日期的版本号,比如2009年1月1日的09001…
你知道这个问题的解决办法吗?
我是否必须更新此“AssemblyInfo任务”的源代码,或者这是否可以在VS2008中实现?
谢谢你的帮助。

你会想看看的。它是一组开源的msbuild任务。模块的任务是增加/修改/etc内部版本号。它还非常易于使用和扩展。

并没有解决我的问题。正如描述中所解释的,我需要一种特殊的格式。另外,msbuildtasks的文档也很好。。。去找它。
我修改了的源代码,添加了一个新的增量类型“YearAndDay”,以满足我的需要:

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;
}

似乎是最简单的解决方案。

VS/C#/msbuild生成的默认自动生成编号是自1.1.2000起的天数,发布编号是自午夜起的两秒增量,因此您可以按如下方式向后计算生成的日期和时间:

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