TFS构建特定的变更集并使用变更集编号进行部署

Kon*_*rad 20 msbuild tfs tfsbuild changeset tfs2010

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

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

  2. 如何使用/传递此数字到"MSBuild Arguments"以在那里使用它进行部署?

Dyl*_*ith 28

从团队资源管理器排队构建时,在"参数"选项卡中,其中一个高级参数是get version.

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

  • 它位于其中一个工作流参数中,您可以在设置传递给msbuild的参数时访问它(您必须自定义构建工作流) (2认同)

pan*_*lif 10

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

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

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

您可以将其更改为类似的内容

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

并到达你需要去的地方.