如何在设计时自动插入构建日期

Bra*_*rad 9 .net c# winforms

希望完全标题有点描述性.

我有一个用C#和.net 2.0编写的winform应用程序.我想将最后一个编译日期自动更新为变量,以便在about框和初始启动框中使用.目前我有一个我手动更新的字符串变量.有没有办法做到这一点?

VS2008 .net 2.0 c#

Ric*_*gan 6

另一个技巧(您可能无法使用)是利用.NET生成的自动构建和修订号.如果您的AssemblyInfo具有:

[assembly: AssemblyVersion("1.0.*")]
Run Code Online (Sandbox Code Playgroud)

最后两个数字只是一个日期/时间戳.一些代码(下面的列表)可能有所帮助:

Version v = Assembly.GetExecutingAssembly().GetName().Version;
DateTime compileDate = new DateTime((v.Build - 1) * TimeSpan.TicksPerDay + v.Revision * TimeSpan.TicksPerSecond * 2).AddYears(1999);
Run Code Online (Sandbox Code Playgroud)

编辑:这是一个替代答案,可能比我放的更清楚:https: //stackoverflow.com/a/804895/2258


Ste*_*per 5

将其放入您的预构建事件中;

echo public static class DateStamp { public readonly static System.DateTime BuildTime = System.DateTime.Parse("%date%"); }  > $(ProjectDir)DateStamp.cs
Run Code Online (Sandbox Code Playgroud)

它像这样创建了一个名为 DateStamp 的类;

public static class DateStamp
{ 
   public readonly static System.DateTime BuildTime = System.DateTime.Parse("14/12/2009"); 
}
Run Code Online (Sandbox Code Playgroud)

你像这样使用它;

Console.WriteLine("Build on " + DateStamp.BuildTime.ToShortDateString());
Run Code Online (Sandbox Code Playgroud)