Verfahren zur Anwendungsversion auf einem Console Utility App
Frage
Was ist die beste Methode für die Anzeige von Major / Minor-Versionen in einer C # Konsolenanwendung?
Der System.Windows.Forms-Namespace enthält eine Product Klasse, die verwendet werden kann, die Name / Version Informationen über die Visual Studio Projekteigenschaften (Assembly Informationen) gesetzt anzuzeigen. Als solches ist hier mein derzeitiger Mechanismus:
Console.WriteLine ( "{0} ({1})", System.Windows.Forms.Application.ProductName, System.Windows.Forms.Application.ProductVersion);
Warum ist dieser Teil der Formen? Ist dies angemessen für eine Konsolenanwendung?
Lösung
Assembly.GetExecutingAssembly().GetName().Version
Sie können aber auch nach wie vor die Klasse verwenden, müssen Sie nur die enthält Assembly verweisen. Es ist kein großes Problem.
Andere Tipps
Assembly.GetExecutingAssembly().GetName().Version
ist nicht die gleiche wie Application.ProductVersion
(kann aber auch gut genug sein, abhängig von Ihrer Umgebung.
Wie mit Lutz Reflektor zu sehen ist, Application.ProductVersion
erste Versuche, die AssemblyInformationalVersion zu verwenden Attribute aus Assembly.GetEntryAssembly()
wenn es vorhanden ist, und wenn GetEntryAssembly()
nicht null ist.
Ansonsten nutzt die Dateiversion der ausführbaren Datei.
Ich sehe keinen Grund, nicht Application.ProductVersion
in einer Konsolenanwendung zu verwenden.