Jak*_*ade 15 .net c# vb.net reflection
是否有一些聪明的方法来获取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
Run Code Online (Sandbox Code Playgroud)
有什么建议?
M4N*_*M4N 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);
Run Code Online (Sandbox Code Playgroud)
当使用a *作为程序集版本的第三和第四部分时,这两个部分在编译时自动设置为以下值:
哦,你必须自己照顾夏令时(例如,如果夏令时加一小时).
您可以通过以下方式获取:
File.GetLastWriteTime(Assembly.GetExecutingAssembly().Location);
Run Code Online (Sandbox Code Playgroud)
返回DateTime对象。