.net - 自动增加内部版本号

标签 .net msbuild teamcity versioning

我有两个解决方案。一个是版本 3.0.0.*,另一个是 2.0.0.*。我使用 MSBuild 脚本在 Team City 上构建我的解决方案。如何将版本字符串的内部版本号部分注入(inject)到 AssemblyVersion 属性中,而将major.minor.patch 保留为在开发时定义的。

换句话说,我想手动控制major.minor.patch(并且专业在解决方案中的库之间会有所不同),但会自动增加内部版本号。

最佳答案

TeamCity 将自动为您管理 AssemblyVersion 属性,但有一些注意事项:

  • 它将完全覆盖现有值。
  • 它将更新解决方案中的所有 AssemblyVersions,因此如果您将不同的项目版本保留在同一解决方案中,这可能对您不起作用。

  • 有了这些警告,以下是我们的设置方式:
  • 在构建配置的常规设置中,更改 Build number format%version%.{0}
  • 在您的构建参数中定义 %version%作为你的major.minor.patch。
  • 在您的构建步骤中,滚动到屏幕底部,然后单击添加构建功能。选择 AssemblyInfo patcher .确保 Assembly version format填写为%build.number% .

  • 就是这样。 TeamCity 会将您的所有程序集信息更新为由 %version% 和构建计数器定义的 major.minor.patch.build,然后在构建的最后一步自动恢复这些更改。

    关于.net - 自动增加内部版本号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14276498/

    相关文章:

    .net - IANA 到 Windows 时区的映射

    c# - 如何为 VS2012 C# 项目执行自定义构建步骤?

    c# - 如何在编译开始之前、生成中间文件之后运行 MSBuild 任务?

    windows - TeamCity 的构建代理无法找到 PowerShell

    c - 在 Ubuntu 上安装的 TeamCity 服务器上构建 Visual Studio 项目

    c# - SendAsync何时完成?

    c# - .NET MSBuild 目标 AfterTargets=Pack using dotnet build

    .net - 使用 ELK 堆栈进行应用程序日志记录

    c# - 具有许多 Web 项目输出到同一目录的 MSBuild 解决方案

    c# - CAKE 在 TeamCity 构建期间抛出异常,但无法在本地重现