For the most part, Microsoft did a very nice job of making TFS 2005 stuff work with TFS 2008 and vice-versa. There’s one area that just isn’t compatible: Team Build.
This is a bit of a sticky issue. Let’s take our planned approach here:
- Upgrade some people to VS 2008. They start writing apps with VS 2008. Let’s say that they are even targeting the 2.0 framework.
- They add their stuff to the nightly build.
- The build breaks because TFS 2005 cannot build a solution from VS 2008.
So the next step in my mind is to upgrade the build box. It should be able to talk to TFS 2005, right? Wrong.
MS made significant changes to the automated build functionality in TFS 2008. They have a new structure for storing the build data inside the server. They also switched from remoting to WCF for communication between the TFS server and the Build box.
So the options are:
- Upgrade TFS server to TFS 2008 so that the build box can run Team Build 2008.
- Find a way to get Team Build 2005 to compile VS 2008 solutions.
Our plan is to do option 1 in the very near future, but it will take some planning and we need to make sure we don’t mess up.
This leaves us with option 2. It turns out that there is a bit of a hack that makes this work. It requires that we add a step to the build scripts that will do a find and replace on the version number inside the solution files. This tricks the build box into building the VS 2008 solutions. This does have limitations, but it should get us through until we get TFS upgraded and we cut over to the new build server.
I’ve configured this on a couple Infrastructure builds and it appears to be working, except for the Unit Test projects. Not ideal, but it gets us through for now.
In the words of “Meet the Robinsons”… “Keep Moving Forward!”