Alcune persone pensano che Assemblea non tiene Data costruire ma sai cosa sono errati, puoi recuperare il timestamp del linker dal PE header incorporato nel file eseguibile, come segue potrebbe funzionare (non ho provato il codice da solo)
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;
}
o se il montaggio è il vostro proprio meglio utilizzare seguente approccio semplice e facile
Aggiungere al di sotto di pre-build riga di comando evento:
echo %date% %time% > "$(ProjectDir)\Resources\BuildDate.txt"
Aggiungere questo file come risorsa, ora avete Stringa 'BuildDate' nelle tue risorse.
ho preso entrambe le risposte da this question
fonte
2014-01-10 05:22:21
Ciao, ho provato con questo codice, ma sto ottenendo l'errore di location.in mio caso posizione è venuta nulla ... quindi, quello che ho devo fare? –