views:

121

answers:

2

Hello,

I would like to manually run code analysis for an entire solution, not on building the project, and not using FXCop, if possible. I did enable CA on build but it really, really slowed down the build process, and we can't have that. But it seems weird to me that code analysis can only be run per project manually through the menus, but not for an entire project.

Am I missing something?

Thanks.

A: 

No, I don't think you're missing anything. The CA from VS2010 can only be run manually per project. This can indeed become very cumbersome for large solutions if you don't want the CA on build. You could try to disable some rulesets to decrease the slowdown though.

Rewinder
A: 

I also don't know of a menu/command that can be used to run CA for all projects, but you can create a new solution configuration (e.g. CodeAnalysis based on Debug) and set up CA for each project to run for that Configuration, letting you run CA for all projects without slowing down your regular Debug build.

  1. Create the new configuration called "Code Analysis" (Build -> Configuration Manager, then <New...> under Active solution configuration).

  2. In the CA properties tab for each project, set CA to run for the "Code Analysis" configuration, and not to run for the Debug configuration (and any other Configurations you don't want CA to run on).

  3. You can do the same on the Code Contracts tab if you normally don't want contract checking on your regular build configurations.

Now when you set your solution configuration to Debug and build, you should not have CA and CC being performed. When you do want the CA and CC checks done, change the configuration to 'Code Analysis' and build.

It's not as convenient as a menu or toolbar option, but it might be an alternative that works for you.

Hope this helps.

adrift
I know what you are talking about, but I don't see the option to run CA for all projects there, nor do I see the option to say "turn on code analysis on build for all projects" through this interface.. . could you give me some more details?
Brian
Yes, sorry, I didn't mean to imply that you could do a 'one-click' CA build for all projects -- I guess it would be a two-click build. I will edit my answer to add more detail.
adrift