【问题标题】:Can build agents on one machine have different build controllers?一台机器上的构建代理可以有不同的构建控制器吗?
【发布时间】:2017-06-10 12:58:50
【问题描述】:

我正在更新我的 XAML 构建工作流和与之配套的自定义程序集。我在带有测试构建代理的机器上有一个测试构建控制器。

我还想在我的实时构建机器(这是更快的硬件)上为此控制器部署一个测试代理。

在 Visual Studio 中,如果我转到“管理构建控制器”对话框,我可以通过为其提供新版本自定义程序集的路径来配置我的测试控制器。

我的测试控制器和实时控制器具有不同版本的自定义程序集。

我认为构建代理运行的构建服务是一个进程,因此我不确定一个进程是否可以加载自定义程序集的两个不同版本(因为此自定义程序集的实时和测试版本具有相同的名称)。

我可以像这样混合和匹配...在一台机器上注册代理,这些代理注册到不同的控制器,这些控制器本身具有不同版本的自定义程序集?


更新

我找到了这个页面...

http://mohamedradwan.com/2013/01/15/understanding-build-controller-and-build-agent-for-tfs-team-foundation-server/

...它的图表似乎显示了一台机器上的两个代理,这些代理注册了不同的控制器。我仍然不确定它是如何工作的,因为我不确定单个服务是否可以加载自定义程序集的两个不同版本。


更新 2

也许应用程序域允许这样做?

https://msdn.microsoft.com/en-us/library/2bh4z9hs(v=vs.110).aspx

【问题讨论】:

    标签: build tfsbuild xamlbuild


    【解决方案1】:

    一个构建代理只能有一个构建控制。但是一个构建控件可以在不同的物理机器上拥有多个构建代理。

    正如blog 解释的那样,Build Service 是一种 Windows 服务,它可以只有一个 Build Controller,只为一个 Team Project Collection 配置,并且有多个 Build Agent如所须。所以如果一个构建代理可以被两个不同的构建控件控制,它可能同时有两个不同的构建服务,这是不可能的。

    博客中的图表显示了一台机器上的两个代理,它们注册了不同的控制器。这两个代理用于两个不同的项目集合中。

    如果你想分配负载,你只需要在不同的机器上有多个构建代理。详情可以参考Why and when to have multiple build agents?

    另一种方法是使用在 TFS 2015 和 Visual Studio Team Services 中引入的新构建系统-vNext。它是基于代理的。没有控制器,您可以在一台机器上安装多个代理。

    代理在池中分组并存在于服务器级别,甚至允许您跨集合使用它们。

    【讨论】:

      猜你喜欢
      • 2012-09-16
      • 2014-01-05
      • 1970-01-01
      • 1970-01-01
      • 2017-04-09
      • 1970-01-01
      • 2016-03-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多