Algunas personas piensan que la Asamblea no tiene fecha de construcción pero sabes lo que están equivocados, puedes recuperar la marca de tiempo del enlazador desde el PE header incrustado en el archivo ejecutable, como lo siguiente puede funcionar (no he probado el código yo mismo)
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 si el montaje es su propio mejor que utilizar siguiente enfoque simple y fácil
Añadir a continuación a pre-construcción de línea de comandos del evento:
echo %date% %time% > "$(ProjectDir)\Resources\BuildDate.txt"
Añadir este archivo como recurso, ahora usted tiene Cadena 'BuildDate' en tus recursos.
que han tomado las dos respuestas de this question
Hola, he tratado con este código, pero estoy consiguiendo el error de location.in mi ubicación caso viene nula ... así, lo que Tener que hacer ? –