在TFS 2012中是否有办法设置Project(而非.csproj项目,但TFS项目)构建优先级?
目前,我们在TFS中有许多项目,其中一个是许多其他项目引用的核心项目。如果有人同时检查核心和另一个项目的更改,核心项目构建并不总是先启动(我认为它们按字母顺序构建)。能够将核心项目设置为最高优先级,以便在签入对多个项目的更改时,它的构建始终首先运行,这样会很好。这可能吗?
答案 0 :(得分:2)
无法为Build Definition设置默认构建优先级。由于构建定义不是绑定到团队项目,而是绑定到集合,因此也无法将队列配置为从任何其他团队项目中获取构建。
您可以做的是在代理上设置标记,然后将该标记分配给您想要优先使用的构建。这将专门保留Build Agent到特定的构建定义,使其跳入队列。
答案 1 :(得分:0)
TFS 2012中有没有办法设置Project(不是.csproj项目,而是TFS项目)构建优先级?
TFS中的项目是一个相当松散的术语,与VS项目不对应,它实际上用于指代可以包含许多分支的产品。然后,高级项目管理工具在TFS“项目”上运行。
如果有人同时检查核心和另一个项目的更改,核心项目构建并不总是先启动(我认为它们按字母顺序构建)。
不,假设您没有自定义构建,那么它们(VS项目)根本不按字母顺序构建,它们按依赖顺序构建。解决方案按照从$(SolutionsToBuild)
属性的评估返回的顺序构建(这会对.sln文件的文件系统进行通配符搜索,因此可能是您的字母观察的来源)。请注意,在解决方案中的项目上评估依赖关系,而不会在解决方案中评估依赖关系。
对于以下陈述,我将假设您在签入时拥有标准CI样式版本。
如果开发人员立即签入所有内容,则签入将作为原子工作单元进行,并且一旦签入成功提交,构建将开始。如果这不是您的经验,那么我建议您要么在自定义构建中发生时髦的事情,要么开发人员单独检查工作块而不是一次性检查。
请注意,每个工作区的签入都会发生这种情况 - 如果两个不同的开发人员同时检查内容,那么首先签入的人将触发构建,第二个开发人员的提交将错过构建。