TFS2012项目构建优先级

时间:2013-12-04 20:29:02

标签: tfs tfs2012 tfsbuild

在TFS 2012中是否有办法设置Project(而非.csproj项目,但TFS项目)构建优先级?

目前,我们在TFS中有许多项目,其中一个是许多其他项目引用的核心项目。如果有人同时检查核心和另一个项目的更改,核心项目构建并不总是先启动(我认为它们按字母顺序构建)。能够将核心项目设置为最高优先级,以便在签入对多个项目的更改时,它的构建始终首先运行,这样会很好。这可能吗?

2 个答案:

答案 0 :(得分:2)

无法为Build Definition设置默认构建优先级。由于构建定义不是绑定到团队项目,而是绑定到集合,因此也无法将队列配置为从任何其他团队项目中获取构建。

您可以做的是在代理上设置标记,然后将该标记分配给您想要优先使用的构建。这将专门保留Build Agent到特定的构建定义,使其跳入队列。

答案 1 :(得分:0)

  

TFS 2012中有没有办法设置Project(不是.csproj项目,而是TFS项目)构建优先级?

TFS中的项目是一个相当松散的术语,与VS项目不对应,它实际上用于指代可以包含许多分支的产品。然后,高级项目管理工具在TFS“项目”上运行。

  

如果有人同时检查核心和另一个项目的更改,核心项目构建并不总是先启动(我认为它们按字母顺序构建)。

不,假设您没有自定义构建,那么它们(VS项目)根本不按字母顺序构建,它们按依赖顺序构建。解决方案按照从$(SolutionsToBuild)属性的评估返回的顺序构建(这会对.sln文件的文件系统进行通配符搜索,因此可能是您的字母观察的来源)。请注意,在解决方案中的项目上评估依赖关系,而不会在解决方案中评估依赖关系

对于以下陈述,我将假设您在签入时拥有标准CI样式版本。

如果开发人员立即签入所有内容,则签入将作为原子工作单元进行,并且一旦签入成功提交,构建将开始。如果这不是您的经验,那么我建议您要么在自定义构建中发生时髦的事情,要么开发人员单独检查工作块而不是一次性检查。

请注意,每个工作区的签入都会发生这种情况 - 如果两个不同的开发人员同时检查内容,那么首先签入的人将触发构建,第二个开发人员的提交将错过构建。