blachniet
blachniet

Reputation: 4543

Can you turn off conditional compilation symbols from msbuild.exe command line?

We have CODE_ANALYSIS defined in our C# components so that FxCop analyzes them when we build them on our development boxes. I would like to have FxCop turned off when it runs through our build system. The build system is obviously using the msbuild.exe command line command. Is there a way to modify the conditional compilation symbols from this executable? If not, does anyone know any other possible solutions to my problem (other than turning it off manually)?

Thanks.

Upvotes: 5

Views: 3940

Answers (2)

Nicole Calinoiu
Nicole Calinoiu

Reputation: 20992

The CODE_ANALYSIS compilation symbol controls whether the SuppressMessageAttribute instances included in the code are copied into the compiled assembly. It does not control whether FxCop runs. If you want to override a project-level MSBuild property like RunCodeAnalysis (which is the beastie that controls whether FxCop runs under MSBuild), you should be able to use the MSBuild.exe /property command line switch. e.g.:

msbuild.exe <...> /property:RunCodeAnalysis=true

Upvotes: 6

Pedro
Pedro

Reputation: 12328

Why do you need to turn them off? The best way to set up the project is to define CODE_ANALYSIS for debug configurations only. The release version will not have this value set. That way, when you build production installs, they will not have any references to FxCop.

Upvotes: 1

Related Questions