1

我正在尝试向我们的 TFS 构建定义的构建标签字段之一添加一些逻辑。

当前设置如下所示:

在此处输入图像描述

请注意自定义字段主要版本号和以前的主要发布日期。我想修改 Build Number Format 字段,以便最终结果类似于:

<BuildDefinitionName> <Major Version Number>.<# Days since Previous Major Release Date [4 Digits]>.<Revision Number>

所以一个示例输出是:

DebugBuild 6.0.0012.1

哪里0012意味着12天。

我怎样才能做到这一点?我无法理解这些$(Var)字段的声明位置,因为它们似乎与构建过程模板变量和参数分开,而我声明的主要版本号和以前的主要发布日期参数确实存在于构建过程模板中并被分配到论点MajorVersionNumberPreviousMajorReleaseDate.

4

1 回答 1

1

我所做的是自定义 TFS 构建工作流程并在“更新内部版本号”步骤之前添加自定义代码活动。

此代码活动接收BuildNumberFormat变量,替换我的任何自定义标记并将结果传递给我自己的localBuildNumberFormat变量。然后我将我的传递localBuildNumberFormat给“更新内部版本号”活动。

所以这个过程是这样的:

  • 内部编号格式 =$(CustomToken)_$(BuildDefinitionName)_$(Rev:.r)
  • 自定义活动的输入 =$(CustomToken)_$(BuildDefinitionName)_$(Rev:.r)
  • 自定义活动的输出 =DavesBuild_$(BuildDefinitionName)_$(Rev:.r)
  • TFS 构建活动的输入 =DavesBuild_$(BuildDefinitionName)_$(Rev:.r)

在将其传递给 TFS 之前,您实际上是在替换 TFS 无法理解的所有令牌。

如何获取自定义令牌的值取决于您,您可以将它们作为来自构建定义/请求的参数传递,或者在代码活动中查找它们(我都在我的活动中)。

于 2013-10-01T12:03:22.940 回答