Ich brauchte genau das für die automatische Eingabe der Nummer in die Readme-Datei im Ausgabeordner. Am Ende, wie Winston Smith gezeigt hat, ist ein kleines externes Tool eine sehr gute Lösung dafür, und es hat den Vorteil, dass Sie es beliebig formatieren können.
Diese App gibt die formatierte Version an die Konsole aus. Ich habe es in meinen Post-Build-Ereignissen verwendet, um die Readme-Datei zu erstellen, indem ich sie mit >>
anrief, um ihre Ausgabe in die Readme-Datei umzuleiten.
public class GetVerNum
{
static void Main(String[] args)
{
if (args.Length == 0)
return;
try
{
FileVersionInfo ver = FileVersionInfo.GetVersionInfo(args[0]);
String version = "v" + ver.FileMajorPart.ToString() + "." + ver.FileMinorPart;
if (ver.FileBuildPart > 0 || ver.FilePrivatePart > 0)
version += "." + ver.FileBuildPart;
if (ver.FilePrivatePart > 0)
version += "." + ver.FilePrivatePart;
Console.Write(version);
}
catch { }
}
}
Meine Post-Build-Ereignisse:
<nul set /p dummyset=My Application > "$(ProjectDir)\Readme\readme-header.txt"
"$(ProjectDir)\Readme\GetVersionNumber.exe" "$(TargetPath)" >>"$(ProjectDir)\Readme\readme-header.txt"
echo by Nyerguds>>"$(ProjectDir)\Readme\readme-header.txt"
echo Build date: %date% %time% >> "$(ProjectDir)\Readme\readme-header.txt"
echo.>>"$(ProjectDir)\Readme\readme-header.txt"
copy /b "$(ProjectDir)\Readme\readme-header.txt" + "$(ProjectDir)\Readme\readme-body.txt" "$(TargetDir)\$(ProjectName).txt"
Ich habe alle die Readme-verwandte Themen im Ordner meines Projektes \ Readme \ erzeugen; die App, die den obigen Code enthält, und die "readme-body.txt", die das eigentliche Readme-Zeug enthält.
Erste Zeile: Erstellen Sie die Datei "readme-header.txt" im Ordner \ Readme \ meines Projekts und geben Sie den Programmnamen ein. (Die <nul set /p dummyset=
ist ein Trick, den ich hier gefunden habe: Windows batch: echo without new line). Sie könnten diese Zeichenfolge auch in einer anderen Textdatei speichern und diese stattdessen in "readme-header.txt" kopieren.
Zweite Zeile: Führen Sie die App zum Abrufen der Versionsnummer mit der frisch generierten EXE-Datei als Parameter aus und fügen Sie ihre Ausgabe zur Header-Datei hinzu.
Dritte Zeile: Fügen Sie der Header-Datei weitere Daten hinzu (in diesem Fall Credits). Dies fügt auch einen Zeilenumbruch zum Ende hinzu.
Diese drei zusammen geben Ihnen eine "readme-header.txt" -Datei mit "Meine Anwendung v1.2.3 von Nyerguds", gefolgt von einem Zeilenumbruch, darin. Dann füge ich das Erstellungsdatum und eine andere offene Zeile hinzu und kopiere die Header-Datei und die Readme-Body-Datei zusammen in eine Datei im endgültigen Erstellungsordner. Beachten Sie, dass ich speziell Binärkopie verwende, andernfalls gibt es ungerade Ergebnisse. Sie müssen sicherstellen, dass die Body-Datei am Anfang keine UTF-8-Byte-Reihenfolge enthält, oder Sie erhalten merkwürdige Bytes in Ihrer endgültigen Datei.
lesen alle Antworten für die eine, die Ihnen am besten geeignet ist. Das 'PostBuildEventDependsOn' ist das am höchsten gewählte und einfachste. (Achten Sie auf den speziellen '25' Unicode-Trick beim Einfügen ' – OzBob