Can build agents on one machine have different build controllers?

1k views Asked by At

I'm updating my XAML build workflow and custom assemblies that go with it. I have a test build controller on a machine with a test build agent.

I'd like to also deploy a test agent for this controller on my live build machine (which is much faster hardware).

In Visual Studio if I go to the Manage Build Controllers dialog I can configure my test controller by giving it the path to the new version of the custom assembly.

My test controller and live controller have different versions of the custom assemblies.

The build service in which I think the build agents run is one process, so I'm unsure if one process can load two different versions of the custom assembly (as the live and test versions of this custom assembly have the same name).

Can I mix and match like this... have build agents on one machine that are registered with different controllers that themselves have different versions of the custom assemblies?


Update

I've found this page...

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

...which has a diagram that seems to show two agents on one machine which are registered with different controllers. I'm still unsure how that works as I'm not sure a single service can load two different versions of the custom assembly.


Update 2

Perhaps Application Domains allow this to work?

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

1

There are 1 answers

0
PatrickLu-MSFT On

One build agent can only have one build control. But one build control can have multiple build agents on different physical machines.

Just as this blog explained Build Service is a Windows Service that can only has one Build Controller, configured for only one Team Project Collection and has multiple Build Agents as needed. So if a build agent could be control by two different build controls, it may have two different build service simultaneously, it's impossible.

So as diagram in the blog that shows two agents on one machine which are registered with different controllers. Those two agents are used in two different project collection.

If you want to distribute the load, you just need to have multiple build agents on different machines. Details you can refer Why and when to have multiple build agents?

Another way is using the new build system-vNext which introduced in TFS 2015 and Visual Studio Team Services. It's agent based. doesn't have Controllers and you can install multiple agents on a single machine.

Agents are grouped in Pools and live at the Server level, even allowing you to use them across collections.