2
傑夫寫了約getting a file version/datestamp回來。除非關閉/重新打開解決方案,否則Visual Studio不會增加構建,因此抓取時間戳似乎是驗證您正在使用的構建的最佳方式。如何獲取ASP.NET應用程序的構建日期?
我移植的解決方案C#
// from http://www.codinghorror.com/blog/archives/000264.html
protected DateTime getLinkerTimeStamp(string filepath){
const int peHeaderOffset = 60;
const int linkerTimestampOffset = 8;
byte[] b = new byte[2048];
Stream s = null;
try {
s = new FileStream(filepath, FileMode.Open, FileAccess.Read);
s.Read(b, 0, 2048);
}
finally{
if (s != null){
s.Close();
}
}
int i = BitConverter.ToInt32(b, peHeaderOffset);
int secondsSince1970 = BitConverter.ToInt32(b, i + linkerTimestampOffset);
DateTime dt = new DateTime(1970, 1, 1, 0, 0, 0);
dt = dt.AddSeconds(secondsSince1970);
dt = dt.AddHours(TimeZone.CurrentTimeZone.GetUtcOffset(dt).Hours);
return dt;
}
protected DateTime getBuildTime()
{
System.Reflection.Assembly assembly = System.Reflection.Assembly.GetExecutingAssembly();
return getLinkerTimeStamp(assembly.Location);
}
這似乎工作。有一個更好/更正式的方式來告訴網站何時部署?
感謝您的指針! – Kalid 2008-11-07 00:19:18