private static DateTime AssemblyBuildDate(Assembly a, bool forceFileDate)
{
var assemblyVersion = a.GetName().Version;
DateTime dt;
if (forceFileDate)
{
dt = AssemblyLastWriteTime(a);
}
else
{
dt = DateTime.Parse("01/01/2000").AddDays(assemblyVersion.Build).AddSeconds(assemblyVersion.Revision * 2);
if (TimeZone.IsDaylightSavingTime(dt, TimeZone.CurrentTimeZone.GetDaylightChanges(dt.Year)))
{
dt = dt.AddHours(1);
}
if (dt > DateTime.Now || assemblyVersion.Build < 730 || assemblyVersion.Revision == 0)
{
dt = AssemblyLastWriteTime(a);
}
}
return dt;
}