Building a .NET solution on a remote machine

Hi all.

Putting it as simply as possible: I'm creating a new finalbuilder project (running off Continua CI) with the ultimate goal of building a visual studio .NET solution (in this case an ESRI ArcGIS AddIn) on a our virtual build machine. Once the Continua CI server machine has mapped folders and got the latest copy of the solution folder from TFS (this part works fine), I need to copy the latest content to the remote build machine, open visual studio remotely, run the build remotely, and then copy the finished files back to the Continua CI server.

From what I understand there are a couple of possible options for connecting to virtual machines using finalbuilder:

1. PsExec (Execute Remote Program). It would appear that this will let me log on to the virtual machine and start visual studio, but i'm not sure if I can start the build process this way. (Am I able to pass parameters to the exe to open a solution and begin a build? Not sure.)

2. VMWare actions. Again not sure if I can use any of these to help run remote programs and commands once i'm connected.

 

Does anyone have any advice or experience trying to achieve this? I'm not very experienced at all with remote machines or running remote commands.

Many thanks.

Hi ICoursey,

Continua CI handles this for you. Place an agent on the machine which is meant to build the solution and register it with your Continua CI server. In the Continua CI configuration include an MSBuild or Visual Studio action with the options required. Continua CI will then pick the agent which meets the requirements for this configuration stage and get that agent to build the solution.

You can still use the FinalBuilder script, however think of this more as doing all the extra work to the build. E.g. get the agent to build the solution through a Visual Studio action, then run FinalBuilder to perform all obfuscation and licencing required.

Another note is that you can use the artifact rules on the stage to register the built executable/binary. This will then store the binary with the build. Another option would be to copy artifacts to a central server with a version tag of some description.

You will find that Continua CI will reduce your workload dramatically. It takes away the need to workout how to run up processes on agents, and coping repositories around.

In addition to Jason’s reply, note that if you need to use agents on a machine other than the server (ie on the machine with VS2013 installed) then you would need to purchase a license.

Also, it is possible to build most VS2013 solutions without having VS2013 installed, all you need is the correct .net framework installed and MSBuild 12 ( see additional tools section on this page - http://www.visualstudio.com/en-us/downloads ).

Hi Jason / Vincent,

Thanks very much for the info - it was very helpful. I think I’ll use continua instead of an FB project to build in this case. So just so I’m clear, Continua is able to use a virtual machine as an agent machine for builds, providing the virtual machine has the agent installed? I’m not sure if MSBuild will be able to build our solution in this case, as it’s an ESRI addin and requires ArcObjects SDK installed alongside VS2010 / 2012.

I’m slightly confused regarding the licencing issues as well, I was under the impression that all your paid subscriptions offer unlimited agents? We do have a paid subscription (although I’m not sure which one), but will likely need to upgrade at a later date to allow for more concurrent builds.

Regards,
Luke

Hi ICoursey,

Your understanding is correct. You are able to install Continua CI agents on Windows 32bit and 64bit platforms. You can find a list of the supported platforms here: http://wiki.finalbuilder.com/display/continua/Supported+Platforms.

System requirements are listed here: http://wiki.finalbuilder.com/display/continua/System+Requirements.

Again your correct with having unlimited agents for any of the Continua CI paid licences. After that the pricing is based on number of concurrent builds you require.

Hi Luke

Yes, Continua CI agents can run in virtual machines. 

As for the ArcObjects SDK, unless it has something specific in it’s installer or licensing that requires VS to be installed then you should be able to just make the assemblies available to to the build (ie put them in a repository, or install the SDK on the agent machine) and use MSBuild. 

With regards to licensing, once you have purchased at least 1 license for Continua CI, you can use as many agents as you like. I looked up who you work for and they do have licenses with current subscriptions.