我有一个构建定义来在我的 TFS 上构建解决方案。这很好用,但它总是构建最新版本。
如何强制构建过去的特定变更集?
我如何使用/将此数字传递给“MSBuild Arguments”以将其用于部署?
当您从团队资源管理器中排队构建时,在“参数”选项卡中,高级参数之一是获取版本。
注意:我认为您需要以 C123 的形式指定它,其中 123 是变更集编号。
您的第一个问题的答案显然是@Dylan 所说的。
对于您的第二部分:
重要的论点是GetVersion
。导航到构建过程模板中的活动“为项目运行 MSBuild”,默认情况下,它的值CommandLineArguments
等于
String.Format("/p:SkipInvalidConfigurations=true {0}", MSBuildArguments)
您可以将其更改为类似
String.Format("/p:SkipInvalidConfigurations=true {0} /p:DeployIisAppPath=/changeset/{1}", MSBuildArguments, GetVersion)
并到达你需要去的地方。
如果您使用变更集编号,那么它只对 CI 构建有意义,因为它们通常构建单个变更集。
对于任何其他类型的构建,我建议使用唯一的构建 ID,并涵盖构建多个变更集的构建的情况。