versioning - 使 TeamCity 版本与 .NET 程序集版本匹配

标签 versioning teamcity .net-assembly

现在我们的程序集的版本号为 2.0.831.0。据我了解,这是主要版本、次要版本、日期和内部版本号。如果我进行更改并在同一天再次构建,则会是 2.0.831.1、2.0.831.2 等。

我的 TeamCity 内部版本号格式仅为 2.{0},其中 {0} 是一个自动递增的数字,并且永远持续下去(2.195、2.196 等)。

如何使 TeamCity 看起来与程序集版本完全一样?我们希望能够将更改日志与程序集版本关联起来,这样任何人都可以说程序集版本 2.0.831.2 在这些文件中进行了这些更改。

额外信息: 如果重要的话,我们的构建步骤使用“Visual Studio (sln)”选项而不是“MSBuild”。 如果重要的话,我们使用 Subversion 进行源代码控制。 我们的 TeamCity 版本是 6.5.1(内部版本 17834)。

最佳答案

我建议您采用 semantic versioning scheme {major}.{minor}.{patch} 并为版本号附加第四个元素 {major}.{minor}.{patch}.{build}。 这对于将构建日期包含到版本控制方案中更有用。

TeamCity 6.5(您尚未指定版本)具有构建功能,可用于在构建过程中修补 AssemblyInfo.cs 中的版本。请参阅 AssemblyInfo Patcher 的文档.

AssemblyInfo patcher dialog (TeamCity documentation)

然后,您可以按照您希望在程序集中使用的方式定义内部版本号格式,并将该格式用于内部版本本身以及修补功能。

关于versioning - 使 TeamCity 版本与 .NET 程序集版本匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7258718/

相关文章:

nuget - 可以使用 NuGet 获取以前的版本吗?

java - 哪个Hadoop版本符合RHive要求

Teamcity 和 Rake : Where are the tc system properties?

c# - 如何在紧凑框架中从字节数组加载程序集

.net - 如果代码发生更改,如何自动增加程序集的版本?

ruby-on-rails - REST API 版本控制 - 为什么模型没有版本控制

testing - TeamCity 测试可以异步运行吗

teamcity - 如何隐藏选定用户的 TeamCity 配置?

c# - 如何返回 System.Collections 程序集中的命名空间列表?

C#动态编译和 "Microsoft.CSharp.dll"错误