代码之家  ›  专栏  ›  技术社区  ›  PaulB

更新解决方案中所有程序集的版本号

  •  26
  • PaulB  · 技术社区  · 16 年前

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

    6 回复  |  直到 9 年前
        1
  •  42
  •   grover    16 年前

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

    我有一个TeamCity设置,在这里我使用实际的构建版本生成每个TeamCity构建中的共享文件,它工作得很好。

        2
  •  10
  •   marijne    16 年前

    我们有一个单独的assemblyinfocomon.cs,它具有版本号,并通过引用包含在每个项目中。其他assemblyinfo.cs文件仍保留,但仅包含程序集特定的信息(标题和说明)。因此,对于每个C项目,我们只有一个要更新的文件。

        3
  •  7
  •   matthid    12 年前

    您还可以在其中一个类中有一个公共常量字符串,该字符串表示内部版本号,并在所有assemblyinfo.cs中为不同的项目使用它。当然,为了工作,这必须在所有其他项目引用的项目中进行。

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

    编辑:注意!当您使用多种语言时(在我的例子中是f和c),这也会起作用。

        4
  •  4
  •   Lasse V. Karlsen    16 年前

    搜索/替换?

    毕竟,版本号存储在文本文件中(assemblyinfo.cs位于每个项目的properties文件夹下)。

        5
  •  1
  •       16 年前

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

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

        6
  •  0
  •   Toras    9 年前

    还可以创建一些“核心”程序集,并将对“核心”程序集的引用添加到每个程序集中。堆芯组件将构成常数。在这种情况下,在每个程序集信息文件中,都将从“core”常量设置为一组版本。 例如:

    “core”程序集具有文件ver.cs和常量: public const string value=“0.0.0.99”;

    在每个解决方案程序集中,信息将: [程序集:assemblyfileversion(ver.value)]