是否有一些聪明的方法来获取构建/编译dll的日期和时间?
我正在使用程序集版本编号和反射来在部署应用程序时检索并显示此信息。但在某些情况下,知道何时然后实际编译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
有什么建议吗?
答案 0 :(得分:18)
如果将程序集版本(通常在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);
在汇编版本的第三和第四部分使用*
时,这两部分在编译时自动设置为以下值:
哦,你必须自己照顾夏令时(例如,如果夏令时加一小时)。
答案 1 :(得分:1)
怎么样:
new FileInfo(Assembly.GetExecutingAssembly().Location).CreationTime;
答案 2 :(得分:1)
您可以通过以下方式获取它:
File.GetLastWriteTime(Assembly.GetExecutingAssembly().Location);
返回DateTime
对象。