Very often you will recieve code analysis errors if you run a local Team Build (a "Desktop" build) at the command line even though you didn't see those errors when building in VS2005. This seems to be related to the setting of environment variables. To run a TFS2008 Team Build at the command line it must be done with an MSBuild v3.5 command prompt but your VS2005 is geared towards MSBuild v2.0.
To solve the problem, set the Environment variable "FXCOPDIR" to be "%programfiles%\Microsoft Visual Studio 8\Team Tools\Static Analysis Tools\FxCop" and your Team Build should complete okay. Rather than setting this value universally (and trashing VS2008 builds), what I normally do is have a command file with the following contents to run my Team Builds containing VS2005 Solutions:
@echo Setting environment variables
@set FXCOPDIR=%programfiles%\Microsoft Visual Studio 8\Team Tools\Static Analysis Tools\FxCop
"%systemdrive%\WINDOWS\Microsoft.NET\Framework\v3.5\msbuild.exe" path\TFSBuild.proj
This sets the environment variable for the current command window and executes the Team Build. The environemnt variable means FxCop will behave as if you were in VS2005 even though you are running a TFS2008 Team Build with MSBuild v3.5.
As as an aside, note that TFS2005 can't build VS2008 Solutions. "Forwards" compatibility has provided in TFS2008 meaning TFS2008 will be able to build VS2010 Solutions. This "forwards" compatibility has been implemented by allowing you to specify the MSBuild version used by your Build Agent. See Buck Hodges post for more information:
0 comments:
Post a Comment