26

在 C# 控制台应用程序中显示主要/次要版本的最佳方法是什么?

System.Windows.Forms命名空间包含一个ProductVersion类,可用于显示通过 Visual Studio 项目属性(程序集信息)设置的名称/版本信息。因此,这是我目前的机制:

Console.WriteLine("{0} ({1})", 
   System.Windows.Forms.Application.ProductName, 
   System.Windows.Forms.Application.ProductVersion);

为什么是这一部分Forms?这适合控制台应用程序吗?

4

3 回答 3

59
Assembly.GetExecutingAssembly().GetName().Version

此外,您仍然可以使用该类,您只需引用包含的程序集。这没什么大不了的。

于 2008-10-17T13:36:00.593 回答
8

Assembly.GetExecutingAssembly().GetName().VersionApplication.ProductVersion(但可能足够好,具体取决于您的环境。

从 Lutz Reflector 可以看出,Application.ProductVersion首先尝试使用AssemblyInformationalVersion属性,Assembly.GetEntryAssembly()如果它存在,并且如果GetEntryAssembly()它不为空。

否则,它使用可执行文件的文件版本。

我看不出有任何理由不在Application.ProductVersion控制台应用程序中使用。

于 2008-10-17T17:35:14.013 回答
0

下面一行呢

Console.WriteLine("FileVersionInfo::ProductVersion : {0}",
  System.Diagnostics.Process.GetCurrentProcess().MainModule.FileVersionInfo.ProductVersion);
于 2021-08-02T11:12:08.677 回答