20

我有一个构建定义来在我的 TFS 上构建解决方案。这很好用,但它总是构建最新版本。

  1. 如何强制构建过去的特定变更集?

  2. 我如何使用/将此数字传递给“MSBuild Arguments”以将其用于部署?

4

3 回答 3

28

当您从团队资源管理器中排队构建时,在“参数”选项卡中,高级参数之一是获取版本。

注意:我认为您需要以 C123 的形式指定它,其中 123 是变更集编号。

于 2011-11-03T16:05:38.807 回答
10

您的第一个问题的答案显然是@Dylan 所说的。

对于您的第二部分:
重要的论点是GetVersion。导航到构建过程模板中的活动“为项目运行 MSBuild”,默认情况下,它的值CommandLineArguments等于

String.Format("/p:SkipInvalidConfigurations=true {0}", MSBuildArguments)

您可以将其更改为类似

String.Format("/p:SkipInvalidConfigurations=true {0} /p:DeployIisAppPath=/changeset/{1}", MSBuildArguments, GetVersion)

并到达你需要去的地方。

于 2011-11-04T14:32:41.023 回答
0

如果您使用变更集编号,那么它只对 CI 构建有意义,因为它们通常构建单个变更集。

对于任何其他类型的构建,我建议使用唯一的构建 ID,并涵盖构建多个变更集的构建的情况。

于 2011-11-04T14:23:14.637 回答