【问题标题】:TFS2012 Project Build PriorityTFS2012 项目构建优先级
【发布时间】:2013-12-05 04:55:10
【问题描述】:

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

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

【问题讨论】:

  • 我实际上是要告诉你如何正确设置解决方案构建顺序,但你似乎对另一个答案很满意,所以我不会担心。
  • 解决方案中的项目构建良好且正确的顺序和一切。我正在寻找一种方法来更改构建定义顺序,如我标记为正确的答案中所述。 Project 可能是问这个问题的一个糟糕的选择,但我不知道还能怎么问。不过感谢您的意见。
  • 没问题,但我怀疑在构建定义和构建代理之间设置关联可能无法解决您的问题。

标签: tfs tfsbuild


【解决方案1】:

无法为构建定义设置默认构建优先级。由于构建定义未绑定到团队项目,而是绑定到集合,因此也无法将队列配置为先从一个团队项目中获取构建。

您可以做的是在代理上设置标签,然后将该标签分配给您想要优先的构建。这将专门为特定的构建定义保留构建代理,导致它跳入队列。

【讨论】:

  • 我在构建代理中添加了一个选项卡。但是我怎么能在我的构建定义中使用那个标签呢?我是否刚刚在构建定义名称的末尾添加了该标签?那么所有其他没有该标签的构建定义呢?他们会停止工作吗?我想给其他构建优先级,然后是我们的队列 CI 构建。
  • 您至少需要 2 个构建代理,其中一个具有标签。然后在您的构建定义中查找代理设置以分配标签过滤器。
【解决方案2】:

TFS 2012 中是否可以设置项目(不是 .csproj 项目,而是 TFS 项目)构建优先级?

TFS 中的项目 是一个很松散的术语,并不对应VS 项目,它实际上是用来指代可以包含许多分支的产品。然后,高级项目管理工具对 TFS“项目”进行操作。

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

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

对于以下陈述,我将假设您在签入时具有标准 CI 样式构建。

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-02-24
    • 1970-01-01
    • 2011-01-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多