代码之家  ›  专栏  ›  技术社区  ›  Marc

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

  •  3
  • Marc  · 技术社区  · 17 年前

    我在VisualStudio2005中有一个.NET2.0C#应用程序,我想为它自动生成正确的版本版本号,该版本号应该包含一个允许我猜测应用程序生成日期的数字。
    我试着使用 'AssemblyInfo Task'

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

    3 回复  |  直到 17 年前
        1
  •  3
  •   Gavin Miller    17 年前

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

        2
  •  2
  •   Lucero    17 年前

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

    new DateTime(2000, 1, 1).AddDays(assemblyName.Version.Build).AddSeconds(assemblyName.Version.Revision*2)
    
        3
  •  1
  •   Marc    17 年前

    msbuildtasks 没有解决我的问题。正如描述中所解释的,我需要一种特殊的格式。另外,msbuildtasks的文档也很好。。。去找吧。
    AssemblyInfo Task 通过添加新的增量类型“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;
    }
    

    这似乎是最简单的解决办法。

    推荐文章