setzen build-Datum in der about-box
Habe ich eine C# - WinForms-app mit einer info-box. Ich bin putting Sie die Versionsnummer im info-box Verwendung:
FileVersionInfo.GetVersionInfo(Assembly.GetExecutingAssembly().Location)
.FileVersion
Endet, dass Sie mir die Subversion-Revisionsnummer, aus denen die ausführbare gebaut wurde.
Ich würde auch gerne die Datum der build, in der About-box. Ich habe versucht:
File.GetLastWriteTime(Assembly.GetEntryAssembly().Location)
Aber das gibt mir die schreiben das Datum der EXE-Datei, die nur entspricht das Datum, Wann die app wurde installiert (wir mithilfe von ClickOnce) nicht gebaut.
Wie bekomme ich die build-Datum?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie die automatische Versionierung, können Sie konvertieren Sie die letzten zwei bits der Versionsnummer in einem build-Datum: MSDN
Sind wir mit diesem sehr ähnliches Stück code:
und ich bin mir ziemlich sicher, dass es nicht ändern, wenn die Installation über ClickOnce.. Wenn ich falsch bin, bitte korrigieren Sie mich!
Könnten Sie ändern Ihre Montage Versionierung Kodieren Sie das Datum, aber das würde wahrscheinlich bedeuten, verlieren Sie Ihre subversion Revisionsinformationen, die ist wohl mehr nützlich.
Sollte dies funktionieren: schreiben Sie das aktuelle Datum/Uhrzeit in eine .cs-Datei als pre-build-Aufgabe etwa so:
Könnte man eine batch-Datei, PowerShell Skript oder eine ausführbare Datei für die.
Schließen Sie die Datei in Ihr Projekt (build action: compile), und das benutzerdefinierte Attribut:
Auf Anwendung starten, können Sie verwenden Sie reflektion, um das benutzerdefinierte Attribut aus der Versammlung, für die Anzeige in der info-Seite.
Nur so, ich war in der Lage, es zu tun in C/C++ war tatsächlich ein post-build-Prozess führen Sie eine Suche und ersetzen von einer speziellen Zeichenfolge zugewiesen, die als "static const" in der binären.
Möglicherweise gibt es einen einfacheren Weg, in c# obwohl.
Ich glaube nicht, dass ein standard-Weg, es zu tun, vorhanden, aber Sie können roll etwas auf sich. Erstellen Sie eine benutzerdefinierte assembly-level-Attribut, geben Sie ihm einen coolen Namen wie "AssemblyDateAttribute'. Lassen Sie es nehmen Sie eine Zeichenfolge, die Sie analysieren können, in einen DateTime-der Konstruktor, der ist zugänglich über eine Eigenschaft.
Als Teil eines build-Prozesses, erstellen Sie eine neue Datei, die nur das Attribut angewendet werden, um die Montage. (Lassen es so Aussehen wie AssemblyInfo.cs), und fügen Sie dann, dass in Ihren build-Eingang.
Dann in deiner about-box, suchen Sie die assembly-Instanzen dieses Attributs und Anzeige von Datum-Wert in Ihre box.
In Visual Studio-Projekten gibt es eine Datei AssemblyInfo.cs, aber man kann auch jede andere .cs-Datei. Blick auf das Attribut AssemblyVersion:
Nun kannst du berechnen, das build-Datum mit der Version.Bauen Eigenschaft. Der Wert, der die Version.Bauen gibt die Anzahl der Tage ist da: 2000/1/1
Aus meinem eigenen C# -code.