Tag Archives: Build Service

XAML Build fails in TFS 2015 RC: Could not load file or assembly ‘Microsoft.Build.Utilities.Core, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a’ or one of its dependencies.

Mucking around TFX2015RC throws up some surprises.  Creating a new build XAML build definition / loading an old XAML definition will result in a cryptic build error.

Cannot Build

The current fix?  Install VS2015RC on the box – minimum installation options should suffice (unless you encounter that weird installation bug that prevents you from doing that).

build success

Hope that Microsoft packages that DLL into TFS directly, rather than required an entire install.  Microsoft, are you seeing this???

Configure/Reinstall/Setup Build vNext Agent on TFS2015RC

I’ve been messing around TFS2015RC these days, and one of the coolest new feature is the Build vNext Preview.  However, it is not smooth sailing and one of the issues that cropped up was that the Build vNext Agent failed to install correctly during the setup process because I forgot to set up the proxy server, which led to the agent not being able to locate the TFS server (TF402467).

Heading back into the TFS Admin Console confirms this.

TFS2015RCBuildAgentFail

Attempts to “Change Account” or set the “Work Folder” would fail because of a “corrupt setting.json” file.

Digging into “C:\Program Files\Microsoft Team Foundation Server 14.0\Build” would show a setting.json with seemingly empty values.  However, a ConfigureAgent.ps1 seems promising.

Call the powershell script, and provide the required values (assuming you have already sorted out the issue that caused the failure in the first place)

PS C:\Program Files\Microsoft Team Foundation Server 14.0\Build> ./ConfigureAgent.ps1
Enter the name for this agent (default is Agent-TFS2015RCDEMO):
Enter the url for the Team Foundation Server (default is ): http://localhost:8080/tfs
Configure this agent against which agent pool? (default pool name is ‘default’):
Enter the path of work folder for this agent (default is ‘C:\Program Files\Microsoft Team Foundation Server 14.0\Build\_
work’):
Would you like to install the agent as a Windows Service (Y/N) (default is Y):
Enter the name of the user account to use for the service (default is NT AUTHORITY\LocalService):
Would you like to unconfigure any existing agent (Y/N) (default is N; the agent will be updated):
Configuring agent
Unblocking files
Calling agent configure with /RunningAsService
Calling agent configure without /Force
Installing service vsoagent.localhost.Agent-TFS2015RCDEMO…
Service vsoagent.localhost.Agent-TFS2015RCDEMO has been successfully installed.
Creating EventLog source vsoagent.localhost.Agent-TFS2015RCDEMO in log Application…
Configure agent succeeded.
Agent is now running as a Windows Service.
PS C:\Program Files\Microsoft Team Foundation Server 14.0\Build>

Jumping back to the TFS Console Admin, we see that the Build vNext Agent has been set up and running.  Yay!  Hope this helps someone!

Multiple TFS Build Controllers per Team Project Collection

This builds upon my previous post to mix domain and non-domain build servers together.  I wanted to have a controller each to manage the various build agents within the domain and non-domain build servers.  Enabling this was a piece of cake.

Head over to your TFS Admin Console on your Build Server, and create a new controller.

MultiBCCreateNewControlelr

Reassign each agent to use the new controller by clicking on the Properties link, then update the Controller value.

MultiBCModifyAgent

Skip over to queue a new build.  You’ll notice that now you have 2 build controllers to select from.  Target the new BC and you’re done!

Non-Domain TFS Build Server with Domain TFS

With some spare time on hand, I wanted to explore if there we were to mix domain-joined build servers with non domain-joined ones, since this could open up a couple of interesting possibilities.

1. Ensure that the target TFS server is reachable, so that we can put proxy and firewall issues aside.

2. Install TFS, but select to only configure Team Foundation Build ServiceTFSBuildServiceOnly

2. Define the TFS Server, then select the Team Project Collection

TFSBuildServiceSelectServer

3. Enter the credentials that your build service will run as.  Ensure that the necessary permissions have been granted, otherwise you’ll get a TF254021 surprise.

TFSBuildServiceAccount

4. Continue with the installation, and you’re done!

TFSBuildServiceSuccess

5. So now you have a non-domain build service (with 2 agents) connected to a domain-joined TFS and Build Controller.

 

 

 

Note:

#To set the permissions, make sure that your TFS target is not a Domain Controller.  Create a local account (e.g. remotebuild) on TFS, your build controller and your Non-Domain Build Server. Make sure they have the same password. I also added the account to the Project Collection Build Service.

# Make sure that communication on port 9191 from Build Controller to your Build Agent is enabled.