Niektórzy ludzie uważają, że Zgromadzenie nie posiada datę budowy ale wiesz, co jest nie tak, możesz pobrać znacznik czasu linkera z PE header osadzonego w pliku wykonywalnym, tak jak podążanie może działać (nie przetestowałem kodu samodzielnie)
private DateTime RetrieveLinkerTimestamp()
{
string filePath = System.Reflection.Assembly.GetCallingAssembly().Location;
const int c_PeHeaderOffset = 60;
const int c_LinkerTimestampOffset = 8;
byte[] b = new byte[2048];
System.IO.Stream s = null;
try
{
s = new System.IO.FileStream(filePath, System.IO.FileMode.Open, System.IO.FileAccess.Read);
s.Read(b, 0, 2048);
}
finally
{
if (s != null)
{
s.Close();
}
}
int i = System.BitConverter.ToInt32(b, c_PeHeaderOffset);
int secondsSince1970 = System.BitConverter.ToInt32(b, i + c_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;
}
czy montaż jest twój własnego lepiej użyć poniższy proste podejście i łatwy
Dodaj poniżej pre-build wiersza polecenia wydarzenia:
echo %date% %time% > "$(ProjectDir)\Resources\BuildDate.txt"
Dodaj ten plik jako zasobu, teraz masz Łańcuch "BuildDate" w Twoich zasobach.
Brałem obie odpowiedzi od this question
Witam, próbowałem z tym kodem, ale dostaję błąd lokalizacji. Moja lokalizacja jest nieważna ... więc, co ja musieć zrobić ? –