We have been using MSBuild for a few years successfully in our company. We have a very custom .proj build file for every Build specification (Release, Debug, etc.) which include many operations as:
- Obfuscation
- Packing
- Copying outputs
- Compressing
- Etc
Since Microsoft included a new feature in TFS2010 to make builds using Windows Workflow Foundation, we are thinking to change to it. As Jim Lab (Program Manager for Team Foundation Server) said in an article, here's his general guidance on when should be use them:
- If the task requires knowledge of specific build inputs or outputs, use MSBuild
- If the task is something you need to happen when you build in Visual Studio, use MSBuild
- If the task is something you only need to happen when you build on the build server, use WF unless it requires knowledge of specific build inputs/outputs
I am not still quite sure about it and I would like to know your own experience, positive things, drawbacks, etc. Your opinion would be more valuable if you have modified the DefaultTemplate.xaml to perform your own operations.