What's the best way to upgrade the msbuild components on a build server for a VS2010 web application?

842 Views Asked by At

I have run into a disparity between the developers desktop machines, which are running Visual Studio 2010 SP1, and the build server, which appears to be based around the msbuild components from VS2010 RTM.

The web deployment fails due to a problem with the *.deploy.cmd script that is generated, and is explained by this SO question: msdeploy v2 doesn't work with vs2010's packages. The approved answer (edit the batch file) is unworkable (it's auto generated) and the latter one suggests it's fixed by TFS 2010 SP1, but we're using a different CI server and VCS.

Our build machine appears to have been set up by following the instructions in this SO question: Microsoft.WebApplication.targets was not found, on the build server. What's your solution?. This suggests installing the Platform SDK and Visual Studio Shell.

It looks to me as if the files "Microsoft.Web.Publishing.*" in the following folder:-

%ProgramFiles(x86)%\MSBuild\Microsoft\VisualStudio\v10.0\Web

is what needs updating, but I don't know what the best way to do this is? I don't want to just blindly copy a bunch of files from a developers desktop, if there is a formal package available. Will VS2010 SP1 do the trick without installing a load of other stuff in the process? Are these files even part of SP1 or is there another package I need to install instead?

The original question suggests to me that this is not a Microsoft sanctioned set-up which is why the answers seem to revolve around just copying assemblies manually.

1

There are 1 best solutions below

0
On

I would install Framework 4.0 again, install the SDK, perhaps install FW 4.0.3 update (http://www.microsoft.com/en-us/download/details.aspx?id=29053) and if there were any missing targets, I'd manually grab them from a dev box and copy them over to the same exact location on the build box.

In my world, using CC.NET as the "build box", I've had to do this a few times.
Microsoft drops the ball a few times when getting a build machine to work, even with TFS.

As far as the "not sanctioned", Microsoft would have to admit they drop the ball sometimes on a (non VS installed) build machine.