4

TeamCity 是一个很棒的 CI 工具,我们也使用 Semantic Versioning 来管理我们的 DLL 版本很长一段时间,现在我们正在达成将 TeamCity 和 Semantic Versioning 集成在一起的想法,同时我们对这个主题进行了一些研究,比如说版本信息喜欢

MajorVersion.MinorVersion.PatchVersion.BuildNumber

buildNumber 我们总是使用 teamcity buildnumber,以及我们在 assemblyinfo.cs 中维护的其他 3 个版本,这里的问题是 - 我们如何使用 teamcity 将其 build number 输入到 assemblyinfo.cs,我可以找到 Msbuild 支持这个参数,有没有处理同一件事的最佳做法?我们还希望将整个版本作为已发布的版本信息提供给我们的开发人员的 nuget 包

非常感谢

4

4 回答 4

2

我试图在本文中描述适合我的方法。 http://www.developerfusion.com/article/144809/continuous-integration-using-nuget-and-teamcity/

请注意,NuGet 不完全支持 SemVer(目前),例如 PrereleaseTags 与内部版本号相结合将无法按您期望的方式工作。我在 MSDN 上的 Top 10 NuGet (Anti-)Patterns中描述了一些关于版本控制的指导。

于 2012-09-20T05:22:54.023 回答
1

您可以使用 AssemblyInfo Patcher 功能。构建功能在构建配置设置的构建步骤页面上配置。它记录在这里。如果您将 AssemblyInfo 保存在非标准位置,则可以使用MSBuild 社区任务 AssemblyInfo通过 msbuild 重写它。

于 2012-09-19T07:14:54.337 回答
0

TeamCity 元运行器电源包 ( https://github.com/JetBrains/meta-runner-power-pack )中提供了一个非常完整的 SemVer 内部版本号元运行器。

以下是作者对功能的描述:http: //johanleino.wordpress.com/2013/10/11/teamcity-meta-runner-semantic-version-build-number/

SemVer Build Number 元运行程序是基于 PowerShell 的运行程序。它可以(在此发布时):

  • 从 nuspec (nuget) 文件中获取版本号。
  • 使用手动版本号(如果需要,可以使用参数)。覆盖其他方法。
  • 包括 TeamCity 构建计数器。
  • 包括 VCS 修订。
  • 将 Git 提交哈希转换为短哈希。
  • 如果需要,忽略构建元数据。
  • 记录等
于 2013-12-30T16:49:15.527 回答
0

这是我写的一篇博客文章,介绍了如何从AssemblyInfo.csC# .Net 项目的前两个数字创建版本号,并添加构建计数器和分支名称以形成完整的版本号。可以很容易地针对其他情况进行修改,它只是带有文件内容替换器构建功能的脚本。

http://www.meadow.se/wordpress/generating-semantic-version-build-numbers-in-teamcity/

希望这可以帮助。

于 2017-07-02T19:14:14.803 回答