Solution: Getting Silverlight to build on Team Foundation Build Services 2010

来源:互联网 发布:白菜价淘宝店 编辑:程序博客网 时间:2024/06/17 12:52

This is SSW’s first time using Team Build 2010 to automatically create a Silverlight application. In the past the guys have used Cruse Control, but we want to move to a pure TFS 2010 solution. When one of our developers (Allan) added a Silverlight 3 project to the Solution our build server spat it out.

clip_image001
Figure: Build SSW.SqlDeploy_20100303.8 failed when trying to build a Silverlight application.

Usually the person who broke the build should now be the one responsible for babysitting it until the next person breaks the build. In this case we had not agreed that as part of our project prep so I think I will need to wait until the retrospective at the end of our current, and first for this project, sprint.

Problem 1: First time for Silverlight compile on the Build Server.

Because Allan added the first Silverlight 3 application to the Solution the build server hiccupped as only the Silverlight 2 SDK was installed on it and it was a Silverlight 3 project. I have highlighted below where the problem was located.

image
Figure: The Silverlight targets file was not found on the build server.

I downloaded and installed the Silverlight 3 SDK from Microsoft, and hoped all would be well.

But the build failed again…

clip_image003
Figure: SSW.SqlDeploy_20100303.10 failed still trying to find targets.

Problem 2: This was due to the web targets not being installed.

At this point I got fed up and copied the contents of my local directory “C:Program Files (x86)MSBuildMicrosoftVisualStudiov10.0” to the same folder on the build server.

image
Figure: MSBuild could not find the web targets.

But the build failed again…

image
Figure: SSW.SqlDeploy_20100303.11 failed again trying to build Silverlight.

Problem 3: Can’t build Silverlight 3 projects with MSBuild 64-bit (the default)

There is a nasty bug in the Silverlight SDK that means that you can’t build using the MSBuild 64-bit process. But on a 64-bit OS, the 64-bit MSBuild is used by default… so how to change it.

image
Figure: Why is it saying that the SDK is not installed… oh, a bug.

This is an easy fix, but a hard to find solution. if you Open up your “build process definition” and expand the Advanced tree you will see that there is a MSBuild Platform option that is set to “Auto”, change this to “X86”.

clip_image005
Figure: You MUST set the MSBuild Platform to X86 to build a Silverlight project,

And the build failed again…

image
Figure: SSW.SqlDeploy_20100304.04 failed again trying to do code analysis.
Note: This was only run 20 or so minutes after the last build, but my build server happens to be in Australia:)

Problem 4: Can’t run Code Analysis on Build Server

Now I get Code Analysis errors…

image
Figure: Why would I be getting code analysis errors? Could it be that it is not installed?

To fix this one I just bit the bullet and installed Visual Studio 2010 onto the Build server, and…

clip_image007
Figure: Successful builds give me a warm fuzzy feeling…

Conclusion

The things that should be installed on the build server are:

  • Team Foundation Build Services 2010 or 2008 or 2005
  • Visual Studio 2010/2008/2005
  • Add-on’s for TFS or Visual Studio that may be required to execute the build.

The options you should set for any Build that has 32-bit dependencies that are causing a problem:

  • You MUST set the MSBuild Platform to X86 to build a project that can’t be built in 64-bit MSBuild.