如何在编译时在.net/C#应用程序中找到当前时间和日期?

Nic*_*ick 8 c# clr build

我想在.net应用程序中包含当前时间和日期,以便将其包含在启动日志中以向用户显示他们具有的版本.是否有可能在编译期间检索当前时间,或者我是否必须获得可执行文件的创建/修改时间?

例如

欢迎来到ApplicationX.这个建日-月-年时间.

Sam*_*ost 9

如果您对构建号使用反射,则可以使用它来确定构建编译的时间.

程序集的版本信息包含以下四个值:

  1. 主要版本
  2. 次要版本
  3. 内部编号
  4. 调整

您可以指定所有值,也可以使用星号(*)接受默认的内部版本号,修订号或两者.内部版本号和修订版默认基于2000年1月1日.

以下属性将设置Major和minor,但随后会增加内部版本号和修订版.

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

然后你可以使用这样的东西:

public static DateTime CompileTime
{
   get
   {
      System.Version MyVersion = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version;
      // MyVersion.Build = days after 2000-01-01
      // MyVersion.Revision*2 = seconds after 0-hour  (NEVER daylight saving time)
      DateTime compileTime = new DateTime(2000, 1, 1).AddDays(MyVersion.Build).AddSeconds(MyVersion.Revision * 2);                
      return compileTime;
   }
}
Run Code Online (Sandbox Code Playgroud)