Certaines personnes pensent que l'Assemblée ne tient date de construction mais vous savez ce qu'ils ont tort, vous pouvez récupérer l'horodatage du linker à partir du PE header intégré dans le fichier exécutable, comme suit peut fonctionner (je n'ai pas testé le code moi-même)
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;
}
ou si l'assemblage est votre propre mieux vous suite à l'utilisation simple approche et facile
Ajouter ci-dessous pour pré-construction ligne de commande de l'événement:
echo %date% %time% > "$(ProjectDir)\Resources\BuildDate.txt"
Ajouter ce fichier en tant que ressource, vous avez maintenant Chaîne 'BuildDate' dans vos ressources.
j'ai pris les deux réponses de this question
Salut, j'ai essayé avec ce code mais je reçois erreur de location.in mon emplacement de cas vient nulle ... donc, ce que je devoir faire ? –