【问题标题】:Updating the version number of all assemblies in a solution更新解决方案中所有程序集的版本号
【发布时间】:2009-04-17 09:00:11
【问题描述】:

我在 Visual Studio 中有一个相当大的解决方案。有没有办法一次性更新解决方案中所有程序集的主要/次要版本号?

【问题讨论】:

标签: visual-studio assemblies


【解决方案1】:

您可以在解决方案中的所有项目之间共享一个 AssemblyInfo.cs 文件。此共享文件应包含版本号。要共享它,您必须使用 VS 中的添加现有文件并在文件对话框中选择添加为链接。每个项目都有其私有和共享的 AssemblyInfo.cs。私有的仍然包含非版本属性。

我有一个 TeamCity 设置,我使用实际构建版本在每个 TeamCity 构建中生成共享文件,它运行良好。

【讨论】:

  • 我倾向于将共享文件称为“SolutionInfo.cs”,其中也包含版权等内容,并保存为 SCM 的解决方案项目,所有项目都平等地链接到它。
  • 在我的例子中我调用了文件 VersionInfo :)
  • 这非常简单(而且非常出色),而且是一个普遍培养的好习惯。谢谢。
  • 优秀。完美的解决方案。
  • 优秀。使用屏幕截图详细解释了相同的解决方案:Sharing assembly version across projects in a solution 只是一个附加说明。公共/共享文件中定义的程序集属性不能在项目的程序集信息文件中覆盖。如果某个项目遵循自己的版本控制,那么它应该取消链接公共文件并自行定义所有公共属性。
【解决方案2】:

我们有一个带有版本号的 AssemblyInfoCommon.cs,并通过引用包含在每个项目中。其他 AssemblyInfo.cs 文件仍然存在,但仅包含特定于程序集的信息(标题和描述)。因此,对于每个 C# 项目,我们只有一个文件需要更新。

【讨论】:

    【解决方案3】:

    您还可以在您的一个类中使用一个公共 const 字符串,它表示内部版本号,并在您的所有 AssemblyInfo.cs 中将其用于不同的项目。当然,这必须在所有其他项目都引用的项目中才能工作。

    如果您不喜欢在所有项目中引用相同的 AssemblyInfo.cs,这是一个不错的选择。

    编辑:注意!当您使用多种语言(在我的例子中是 F# 和 C#)时,这也适用。

    【讨论】:

      【解决方案4】:

      搜索/替换?

      毕竟版本号存储在文本文件中(每个项目的 Properties 文件夹下的 AssemblyInfo.cs)。

      【讨论】:

      • 如果所有程序集都处于相同的主要/次要版本,这将起作用。不幸的是,我的到处都是:)
      • 你想只是增加它们,还是让它们都一样?因为你可以很容易地使用正则表达式来找到它们,即使它们有不同的数字。
      • 这是一个可行的方法:\[assembly:\s+AssemblyVersion\("\d+\.\d+\.\d+\.\d+"\)\]
      【解决方案5】:

      前段时间我在一个需要高度管理版本控制的项目中使用了一个非常有用的实用程序:

      http://www.codeproject.com/KB/macros/versioningcontrolledbuild.aspx

      【讨论】:

        【解决方案6】:

        您还可以创建一些“核心”程序集并在每个程序集中添加对“核心”程序集的引用。 “核心”程序集将保持不变。在这种情况下,每个程序集信息文件中的程序集版本将从“核心”常量设置。 例如:

        "core" 程序集的文件 Ver.cs 具有常量: 公共常量字符串值 = "0.0.0.99";

        在每个解决方案中,程序集信息将: [程序集:AssemblyFileVersion(Ver.Value)]

        【讨论】:

          猜你喜欢
          • 2017-01-31
          • 1970-01-01
          • 2023-03-19
          • 1970-01-01
          • 2017-07-22
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多