Archive for the ‘TFS’ Category

MSBuild: Custom Task MetaData

Been working with CruiseControl.Net to connect to our CMSynergy source control for some continous integration goodness. While configuring CCNet, I’ve had the oppurtunity to spend some more time with MSBuild – which always makes for some interesting times.

I plan on posting more info once this round is over, but I wanted to make a note about custom tasks from MSBuild. The setup for this, is that I am using a custom task to parse some input files based  on how the release is being defined – and then output the files that should be included in the final install package. Without going too much further into detail, the intial condition was that if this is a .0 release, all files are returned.
The task xml looked like:
<CustomTask SourceFiles=”@(SourceFiles)” Release=”$(ReleaseCondition)”>
<OutPut TaskParameter=”PublishFiles”  ItemName=”OutFiles”/>
</CustomTask>

The interesting bit to note here, was that just setting the output property to the input property (PublishFiles = SourceFiles) – ended up with the MetaData RecursiveDir on PublishFiles being reset  once the output was set to a new variable OutFiles. To get around this, I ended up setting a new custom metadata on the PublishFiles property that copies the RecursiveDir property from SourceFiles.

TFS Upgrade: 2005 to 2008 SP1

Today marked the officially move of our TFS 2005 server to TFS 2008, including SP1. This time the results were more favorable, as TFS is actually running, and people are checking in and out. (The previous attempt I ran into a time crunch, and couldn’t afford the down time for the upgrade and -more importantly- the testing).

Our new TFS server is running Windows Server 2008 – which looks awesome – and SQL Server 2008 – which is great because TFS2008 couldn’t run against it before. We also have a build machine running Windows Server 2003.

The upgrade was pretty painless thanks to a few forum pointers, this post, and having run through the drill of trying to upgrade our TFS databases on a test domain.

Our process was as follows:

  • Disconnect the TFS 2005 server from the network
  • Install SQL Server 2008, including Reporting Services on top of new Windows Server 2008.
  • Run the TFS 2008 install using the SP1 Slipstream trick documented in the updated install guide and Etienne’s post. Note: I had to run the install from the ATIntegerated folder instead of rebuilding the ISO, as for some reason running it from the updated ISO would run the previous install.
  • Chose to update my TFS 2005 databases.
  • Start the install again after an error from Sharepoint, and installing the Sharppoint Web Services.
  • Got past an error where Reporting Services couldn’t initialize. Had to create a new database in Report Services configuration that connecting with the TFSSetup users’ creds.
  • Installed!
  • Uninstalled TFS 2005 Build from the Build Machine
  • Installed TFS 2008 Build on to the Build Machine
  • Checked out, checked in, and built successfully.

The install went pretty smoothly, and the developers are able to do their thing just as before. Sign of a good install.