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

标签 c# build clr

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

例如

Welcome to ApplicationX. This was built day-month-year at time.

最佳答案

如果您对内部版本号使用反射,您可以使用它来确定构建的编译时间。

程序集的版本信息由以下四个值组成:

  1. 主要版本
  2. 次要版本
  3. 版本号
  4. 修改

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

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

[assembly: AssemblyVersion("5.129.*")]

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

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

关于c# - 如何在 .net/C# 应用程序中找到编译时的当前时间和日期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/971476/

相关文章:

c# - 内存泄漏问题

c# - 为什么在创建 const 字符串变量时不能使用 String.Empty?

c# - 如何使用 WebClient 以编程方式登录到诸如 codeproject 或 stackoverflow 之类的网站?

android - 使用外部源文件夹

java - 构建自动化以创建仅存在差异的 jar 文件

docker - Docker pull-从Gitlab CI构建并推送到Heroku

c# - 类型定义和类型引用有什么区别?

c# - JSon反序列化哈希

c# - Type.IsPublic 和 Type.IsVisible 有什么区别

c# - F# 和 C# 的 CLR 相同那么为什么 F# 比 C# 快