Code Analysis Rule Files
Copy these files to an appropriate location in the source tree:
For test code:
<?xml version="1.0" encoding="utf-8"?>
<RuleSet Name="Test Code" Description="Rules for unit and integration test assemblies." ToolsVersion="11.0">
<IncludeAll Action="Error" />
<Rules AnalyzerId="Microsoft.Analyzers.ManagedCodeAnalysis" RuleNamespace="Microsoft.Rules.Managed">
<Rule Id="CA1004" Action="None" />
<Rule Id="CA1014" Action="None" />
<Rule Id="CA1020" Action="None" />
<Rule Id="CA1024" Action="None" />
<Rule Id="CA1026" Action="None" />
<Rule Id="CA1031" Action="None" />
<Rule Id="CA1062" Action="None" />
<Rule Id="CA1300" Action="None" />
<Rule Id="CA1303" Action="None" />
<Rule Id="CA1502" Action="None" />
<Rule Id="CA1506" Action="None" />
<Rule Id="CA1702" Action="None" />
<Rule Id="CA1707" Action="None" />
<Rule Id="CA1709" Action="None" />
<Rule Id="CA1822" Action="None" />
<Rule Id="CA2204" Action="None" />
<Rule Id="CA2210" Action="None" />
</Rules>
</RuleSet>
For production code:
<?xml version="1.0" encoding="utf-8"?>
<RuleSet Name="Production Code" Description="Rules for production code." ToolsVersion="11.0">
<IncludeAll Action="Error" />
<Rules AnalyzerId="Microsoft.Analyzers.ManagedCodeAnalysis" RuleNamespace="Microsoft.Rules.Managed">
<Rule Id="CA1004" Action="None" />
<Rule Id="CA1020" Action="None" />
<Rule Id="CA1024" Action="None" />
<Rule Id="CA1026" Action="None" />
<Rule Id="CA1303" Action="None" />
<Rule Id="CA1502" Action="None" />
<Rule Id="CA1506" Action="None" />
<Rule Id="CA1822" Action="None" />
<Rule Id="CA2204" Action="None" />
<Rule Id="CA2210" Action="None" />
</Rules>
</RuleSet>
Language
I am not aware of a GUI that allows setting the language for Visual Studio code analysis.
To do this manually, add the following line to your
.csproj files under the main <PropertyGroup> tag:
<CodeAnalysisCulture>en-NZ</CodeAnalysisCulture>
This setting is obviously for New Zealand English. Consult
this table for the appropriate locale ID.
Custom Dictionary
Set up a custom dictionary file called
CustomDictionary.xml and add a link to it in one of your projects. Set the build action (in the properties page) to
CodeAnalysisDictionary. To duplicate this into other projects in the same solution, just drag into each of those solutions. I use the following as a default:
<Dictionary>
<Words>
<Unrecognized>
<Word></Word>
</Unrecognized>
<Recognized>
<Word>Mvc</Word>
<Word>Serialise</Word>
<Word>Serialisation</Word>
<Word>Serialiser</Word>
<Word>Deserialise</Word>
<Word>Deserialised</Word>
<Word>Deserialisation</Word>
<Word>Nesse</Word> <!--From FitNesse-->
</Recognized>
<Deprecated>
<Term PreferredAlternate=""></Term>
</Deprecated>
<Compound>
<Term CompoundAlternate=""></Term>
</Compound>
<DiscreteExceptions>
<Term></Term>
</DiscreteExceptions>
</Words>
<Acronyms>
</Acronyms>
</Dictionary>
Project Configuration
In each project's property pages under the
Code Analysis tab, set the rule set to either the test or production set, and enable the code analysis for release builds only. Running code analysis slows down the build and may not be suitable for debug builds.
TFS
In your continuous integration build definition, set code analysis to
Always.