编译日期和时间
是否有一些聪明的方法来获取dll构建/编译的日期和时间?
在部署应用程序时,我正在使用程序集版本编号和reflection来检索和显示此信息。 但在某些情况下,知道dll实际编译的时间比自动递增版本号更方便。 由于应用程序的部署方式,我认为dll文件本身的修改日期不可靠。
Dim assemblies = AppDomain.CurrentDomain.GetAssemblies Dim assemblyName As String Dim assemblyVersion As String For Each assembly In assemblies assemblyName = assembly.GetName.Name.ToString assemblyVersion = assembly.GetName.Version.ToString ' How to get the date/time of the build?? ' ... Next
有什么建议?
如果您将程序集版本(通常在AssemblyInfo.cs中)设置为Major.Minor.*
(例如1.0.*
),那么您可以在运行时检索构建日期,如下所示:
var version = Assembly.GetExecutingAssembly().GetName().Version; DateTime buildDate = new DateTime(2000, 1, 1) .AddDays(version.Build) .AddSeconds(version.Revision*2);
当对汇编版本的第三和第四部分使用*
,这两个部分在编译时自动设置为以下值:
- 第三部分是自2000-01-01以来的天数
- 第四部分是从午夜开始的秒数除以2(虽然有些MSDN页面说它是随机数)
哦,你必须自己照顾夏令时(例如,如果夏令时加一小时)。
关于什么:
new FileInfo(Assembly.GetExecutingAssembly().Location).CreationTime;