【问题标题】:Method for Application Version on a Console Utility App控制台实用程序应用程序版本的方法
【发布时间】:2010-09-17 17:56:34
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: c# .net console


    【解决方案1】:
    Assembly.GetExecutingAssembly().GetName().Version
    

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

    【讨论】:

      【解决方案2】:

      Assembly.GetExecutingAssembly().GetName().VersionApplication.ProductVersion 不同(但根据您的环境可能足够好。

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

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

      我认为没有任何理由不在控制台应用程序中使用 Application.ProductVersion

      【讨论】:

      • 我也是,但看起来这些方法在 System.Windows.Forms 命名空间中的位置不好,对吧?
      • 仅供参考:如果您在AssemblyInfo.cs 中使用[assembly: AssemblyVersion("1.0.*")]Application.ProductVersion 将返回1.0.*Assembly.GetExecutingAssembly().GetName().Version 将返回实际生成的版本(例如@987654332 @)
      【解决方案3】:

      下面一行呢

      Console.WriteLine("FileVersionInfo::ProductVersion : {0}",
        System.Diagnostics.Process.GetCurrentProcess().MainModule.FileVersionInfo.ProductVersion);
      

      【讨论】:

        猜你喜欢
        • 2014-03-25
        • 2010-10-24
        • 2016-09-28
        • 2010-11-04
        • 1970-01-01
        • 2014-10-26
        • 2015-11-01
        • 2010-12-13
        相关资源
        最近更新 更多