Get assembly version and build date
5217 ワード
1 //get assembly version and create date
2 lblDisplayPCLVersion.Text = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString();
3 lblDisplayPCLBuildDate.Text = GetExeBulidDate().ToShortDateString();
4
5
6 private DateTime GetExeBulidDate()
7 {
8 //get executeing exe location
9 string exeFilePath = System.Reflection.Assembly.GetExecutingAssembly().Location;
10 int peHeaderOffset = 60;
11 int linkerTimestampOffset = 8;
12 byte[] bytes = new byte[2048];
13 Stream s = null;
14 try
15 {
16 s = new FileStream(exeFilePath, FileMode.Open, FileAccess.Read);
17 s.Read(bytes, 0, 2048);
18 }
19 catch (Exception ex)
20 {
21
22 }
23 finally
24 {
25 if (s != null)
26 {
27 s.Close();
28 }
29 }
30
31 int i = BitConverter.ToInt32(bytes, peHeaderOffset);
32 int secondsSince1970 = BitConverter.ToInt32(bytes, i + linkerTimestampOffset);
33 DateTime retDT = new DateTime(1970, 1, 1, 0, 0, 0);
34 retDT = retDT.AddSeconds(secondsSince1970);
35 retDT = retDT.AddHours(TimeZone.CurrentTimeZone.GetUtcOffset(retDT).Hours);
36
37 return retDT;
38 }