TFS2010生成队列有时有多个正在进行的生成,有时没有-逻辑是什么?

TFS2010生成队列有时有多个正在进行的生成,有时没有-逻辑是什么?,tfs,tfsbuild,Tfs,Tfsbuild,我的相当大的项目使用门控构建,带有高度定制的流程模板(XAML)。由于超出了这个问题的范围,我们的进程有一个单一的SharedResourceScope,所以多个构建不并行运行(我知道你应该用代理的范围来做这件事,但是我们在中间切换代理,所以用SharedResourceScope包装所有的东西)。 现在,如果队列中有多个签入,则所有签入都将进入“进行中”状态,并且除了一个之外,所有签入都将在SharedResourceScope上等待。这意味着: 人们无法知道哪个构建正在实际运行 即使我将一

我的相当大的项目使用门控构建,带有高度定制的流程模板(XAML)。由于超出了这个问题的范围,我们的进程有一个单一的SharedResourceScope,所以多个构建不并行运行(我知道你应该用代理的范围来做这件事,但是我们在中间切换代理,所以用SharedResourceScope包装所有的东西)。 现在,如果队列中有多个签入,则所有签入都将进入“进行中”状态,并且除了一个之外,所有签入都将在SharedResourceScope上等待。这意味着:

  • 人们无法知道哪个构建正在实际运行
  • 即使我将一个新的排队签入设置为高优先级,它也无法超过所有正在进行并等待SharedResourceScope的人,因此整个优先级设置没有什么意义
我尝试过使用DefaultProcessTemplate.XAML,我发现通常只有一个构建在进行中(尽管偶尔我会看到两个构建)

问题:

  • 构建何时开始,并因此进入“进行中”模式?是什么阻止所有构建立即启动并阻止AgentScope/SharedResourceScope上的生成

  • 我是否可以在我的XAML中编写一些东西来阻止所有构建进行

  • 使用,您可以获得许多活动,通过这些活动可以通过流程管理代理控制:
    QueryBuildAgentStatus
    IsBuildRunning
    SetBuildAgentStatus
    ,列举一些对您有用的活动。到目前为止,它们还没有被记录在案,所以你必须进行实验才能让它们运行。但是包中包含了一个有用的帮助文件


    至于“进行中”模式,我注意到这是一种状态,即使构建正在等待自由代理;检查这样一个构建的日志,您将看到。这非常令人困惑,我希望MS会添加“排队(但未启动)”模式。

    当生成控制器有能力启动新生成时,生成将启动。由于生成可以使用0到n个代理,因此控制器不会在生成开始之前等待获取代理。控制器根据控制器属性上的“最大并发生成数”设置确定其容量(在代码中:
    MaxConcurrentBuilds
    )。 默认设置:“默认为代理数”

    XAML中无法控制此行为

    此外,TFS2010中还有一个关于此修补程序的错误: