I recently upgraded TFS 2005 to TFS 2008. I just copied my TFS 2005 build project file over to TFS 2008 to give a shot how compatible it is with TFS 2008. It worked well except couple things that I have changed. But I have noticed two main things while running build in TFS 2008.
1) I have seen the file logs generated during the course of build is heavy compare to TFS 2005. You will be seeing details logs. The reason is that default verbosity for file logger in MS Build 3.5 is changed from Normal to Diagnostic. Why did they do that? I don’t know but you set verbosity in TFSBuild.rsp file. Open the TFSBuild.rsp file and set the “/flp:verbosity= normal” if you don’t like Diagnostic mode.
2) Second issue I saw that build reports GUI within a visual studio for a particular build is also pretty much in more details. For example if project has a reference to another project, you will see three build steps
- Project ‘ProjectName’ is building ‘DependentProject’ with target(s) “GetTargetPath”
- Project ‘ProjectName’ is building ‘DependentProject’ with target(s) “GetNativeManifest”
- Project ‘ProjectName’ is building ‘DependentProject’ with target(s) “GetCopyToOutputDirectryItems”
So if you have 10 projects in solution and each project is referencing atleast 2 other project, you will see 10*(2*3) = 60 build steps. Some of you may find that this detail build steps useful but some of them don’t like it. I don’t like it because I do have more than 5 solutions in build so I don’t see that useful for me. The worst thing is I can’t scroll that visual studio build report window down once it reaches it limits. So If you won’t be able see Associated Changesets and workitems section that’s bottom of the page. Here is the screenshot of my GUI within visual studio. Click below image to view full size it’s cutting off right side.
The good news is that’s been fixed in Team Foundation Server 2008 SP1. They have introduce TargetsNotLogged property to the TFS build target file that specifies which build steps should NOT be added and default value set to “‘GetTargetPath;GetNativeManifest;GetCopyToOutputDirectoryItems’. So if you want those build steps back, set empty string to TargetsNotLogged property. They have introduce property in Team Foundation Server 2008 SP1 but doesn’t working that issue completely. But after they released hotfix for that.
Refer this article for hotfix available.
Microsoft Support Article: http://support.microsoft.com/kb/958845