On Monday, the VSTO team released a Whitepaper documenting how to get your VSTO customizations building in a Team Build environment. No longer will you need to install Visual Studio on your build machine in order to accommodate building VSTO projects. You can view the Whitepaper here:
As the whitepaper describes, configuring a build machine to build VSTO projects requires installing some prerequisites and making sure certain resources are in place. There’s nothing particularly difficult about the steps, but there are enough assemblies and registry keys that have to be added to the build machine that it’s pretty easy to miss one or two when doing it manually. (Really, we’re speaking from experience on this one.) To streamline the process, we’ve found it helpful to use some scripts to take care of the nit-picky detail work.
There are two scripts we’ve been using, one to gather the required resources, and one to copy everything to the appropriate location on the build machine. There are sample scripts linked below, but first we’ll quickly run through how the two scripts work.
CreateVSTOPayload.bat: This is the script that gathers the resources, and it needs to be run on a computer that has Visual Studio 2010 Professional (or better) installed. When executed, the script will create a “Payload” directory and copy the assemblies and target files to it.
InstallVSTOPayload.bat: This is the script that, when executed on the build machine, will install the resources gathered by CreateVSTOPayload. For the script to work, it requires the “Payload” directory created above as well as a couple of registry files (we have registry files published next to this batch script). Since the script is adding things to protected locations, it is necessary to run it from an elevated command prompt.
You can find the sample scripts up on Code Gallery here: http://code.msdn.microsoft.com/vstoteambuildscripts
While these scripts have been working for us, please note that it’s possible you’ll need to do a little tweaking.
Note: For the reg files on Code Gallery if you are using a 64-bit build machine you will need to use the Wow6432Node subkey. For example replace all instances of HKEY_LOCAL_MACHINESOFTWAREMicrosoft with HKEY_LOCAL_MACHINESOFTWAREWow6432NodeMicrosoft.