【问题标题】:How to version assemblies—pre-build—based on work items如何根据工作项对程序集进行版本化(预构建)
【发布时间】:2016-12-10 04:38:17
【问题描述】:

我想根据这个规则集自动增加我的程序集版本:

  1. 修订版始终为0
  2. 当版本中唯一的 WIT 是错误修复时,构建会增加
  3. 当版本包含除 Bug 修复之外的任何 WIT 时,Minor 会增加;然后构建总是设置为0
  4. 专业永远不会自动递增

这自然需要一个可以与项目以某种方式交互的构建步骤。

我的第一个想法是构建一个小型 Windows 服务,它利用 TFS SDK 根据这些规则构造版本号并通过 WCF 调用等返回它。但是我遇到了一个问题,即所有的业务需求代码和功能也必须复制到 VSTS 项目中(客户拥有代码并且必须能够在没有我的情况下继续进行)。当然,那里没有安装这样的服务。

然后我考虑在 他的 服务器上安装该服务,然后将其提供给 VSTS。这将顺利通过Rube Goldberg 测试。

有没有更简单的方法来完成这项任务?一种可以在两种环境中工作的?

编辑

我找到了this,但怀疑 TFS SDK 是否在 GAC 中注册了 VSTS。

有人可以确认吗? TFS SDK 是否可用于构建在 VSTS 上运行的脚本?

【问题讨论】:

  • 您能否编辑标签,以便明确答案适用于哪个版本?是 TFS2015、VSTS 还是其他?
  • @GiulioVian:完成,谢谢。

标签: tfs azure-devops tfsbuild tfs-2015 azure-pipelines


【解决方案1】:

好吧,这并不需要很长时间。

我发现 this 和 this 使用 PowerShell 查询 REST API。无需 GAC/SDK。

-- 编辑 -----------------

我故意从这些链接后面的页面中排除了内容,因为提供的解决方案非常复杂;不可能在一篇文章中涵盖这里的概念。如果页面消失或 URL 发生变化,请访问 archive.org 上的链接:

1. PowerShell and vNext Builds
2. VSTS/TFS REST API: The basics and working with builds and releases

无论如何,这个概念很受欢迎,而且覆盖面很广——如果这两个变得无法访问,那么在同一主题上还有很多其他可用的。我一找到这些,就有人能找到更多。

【讨论】:

  • 我怀疑是因为您的答案包含 2 个链接,但不会将这些链接中的相关内容复制到答案中。随着时间的推移,博客和其他网站往往会发生变化、消失和中断,这会使您的答案在当前状态下毫无价值。
  • GAC 中不再提供 TFS 对象模型,但可以很容易地从 Nuget 下载。作为构建的一部分或包含在自定义构建扩展中。它也可以作为构建代理本身的一部分使用,但建议依赖您自己的副本。见:github.com/Microsoft/vsts-task-lib/blob/master/powershell/Docs/…
  • @jessehouwing:“我怀疑是因为……”好点。当我发布这个问题时,我想到了这个问题,但由于我刚才在编辑中指出的原因,我拒绝包含内容。我想我会做得很好。
  • @jessehouwing:“TFS 对象模型...”感谢更新。仅供参考,与此同时,我决定使用基于日期的版本编号方案:[年]。[月]。[日]。[修订]。它更容易、更清洁、对用户更好......没有麻烦,没有大惊小怪。
  • 是的。这要容易得多。或者使用 Git SemVer 并将正确的标签放在分支上。
猜你喜欢
  • 2017-11-27
  • 2019-06-16
  • 1970-01-01
  • 2019-10-28
  • 2011-05-22
  • 1970-01-01
  • 1970-01-01
  • 2018-03-31
  • 1970-01-01
相关资源
最近更新 更多