Ответ 1
Assembly.GetExecutingAssembly().GetName().Version
Кроме того, вы все равно можете использовать класс, вам просто нужно ссылаться на содержащую сборку. Это не biggie.
Каков наилучший способ отображения основных/вспомогательных версий в консольном приложении С#?
Пространство имен System.Windows.Forms
включает в себя класс ProductVersion
, который можно использовать для отображения информации об имени/версии, заданной через свойства проекта Visual Studio (Информация о сборке). Таким образом, вот мой текущий механизм:
Console.WriteLine("{0} ({1})",
System.Windows.Forms.Application.ProductName,
System.Windows.Forms.Application.ProductVersion);
Почему эта часть Forms
? Подходит ли это для консольного приложения?
Assembly.GetExecutingAssembly().GetName().Version
Кроме того, вы все равно можете использовать класс, вам просто нужно ссылаться на содержащую сборку. Это не biggie.
Assembly.GetExecutingAssembly().GetName().Version
не совпадает с Application.ProductVersion
(но может быть достаточно хорош в зависимости от вашей среды.
Как видно из рефлектора Lutz, Application.ProductVersion
сначала пытается использовать атрибут AssemblyInformationalVersion из Assembly.GetEntryAssembly()
, если он присутствует, и если GetEntryAssembly()
не является нулевым.
В противном случае используется версия файла исполняемого файла.
Я не вижу причин не использовать Application.ProductVersion
в консольном приложении.