【问题标题】:Whats the best way to store a version number in a Visual Studio 2008 project?在 Visual Studio 2008 项目中存储版本号的最佳方式是什么?
【发布时间】:2010-11-11 11:13:06
【问题描述】:

我想在调试和发布版本中以编程方式获取 C# 项目的存储主要版本号。

我可以在哪里存储此版本号以及如何访问它?

【问题讨论】:

    标签: c# visual-studio-2008 build-process


    【解决方案1】:

    转到项目属性 |应用 |装配信息。

    您可以通过Assembly.GetExecutingAssembly().GetName().Version访问该版本

    【讨论】:

      【解决方案2】:

      版本号通常在 AssemblyInfo.cs 文件(位于 Properties 文件夹中)中定义。您可以像这样以编程方式获取版本号:

      Console.WriteLine(Assembly.GetExecutingAssembly().GetName().Version.ToString());
      

      或者,如果您想访问不同的部分:

      Version version = Assembly.GetExecutingAssembly().GetName().Version;
      Console.WriteLine("Major={0}, Minor={1}", version.Major, version.Minor);
      

      有关详细信息,请参阅Version class documentation

      【讨论】:

      • ...Version.ToString(x),其中 x 是版本信息的部分数,通常比引用单个属性更好。 msdn.microsoft.com/en-us/library/bff8h2e1.aspx
      • @ToddR:这是一个很好的观点。在我的回答中,该示例背后的想法更多地表明 Version 对象将这些元素作为属性,如果您想对它们做一些事情。例如,您可能想要构建一个类似“Version 1.3, build 3252”的字符串,您可以在其中使用 .ToString(2) 作为第一部分,但需要单独访问 Build 属性以获取内部版本号。
      • @Fredrik Mörk:当然。我并不是要暗示你所做的事情是坏的。我只是添加信息,因为我知道很多人忽略了重载的 ToString()。
      【解决方案3】:

      以编程方式获取您的程序集版本。

      Assembly.GetExecutingAssembly().GetName().Version
      

      这里是如何获取文件版本

      System.Diagnostics.FileVersionInfo.GetVersionInfo(Assembly.GetExecutingAssembly().Location)
      

      【讨论】:

        【解决方案4】:

        我想这取决于你的意思存储它,但你应该看看:

        ApplicationDeployment.CurrentDeployment.CurrentVersion

        编辑:实际上这是为了获取您部署的版本。它可能不是您所需要的。

        【讨论】:

          猜你喜欢
          • 2015-11-08
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-02-20
          • 1970-01-01
          • 2020-04-02
          相关资源
          最近更新 更多