Normally, the only thing you need to do is install the Microsoft.CodeAnalysis.FxCopAnalyzers nuget on your project.
But as mentioned correctly, this does not work, especially for .Net Core (currently in vs2017).
In order to work for aspnet core projects, as well, and resolve the error:
"Could not identify platform for ..."
Manually modify the project's csproj file and make sure to not insert the RunCodeAnalysis
tag. Make the PropertyGroup like that:
<PropertyGroup>
<TargetFramework>netcoreapp2.2</TargetFramework>
<CodeAnalysisRuleSet>..\MyStylecop.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
Also, if you need to put a given ruleset file, make sure to place it to the correct path, as seen above ..\MyStylecop.ruleset
. MyStylecop.ruleset is the file with the rules (actually the ones suppresed I think - so it is inverse logic).
For example my ruleset file is:
<?xml version="1.0" encoding="utf-8"?>
<RuleSet Name="Default stylecop settings" Description="This rule set contains all rules (as warnings), with a few specific supressions." ToolsVersion="15.0">
<IncludeAll Action="Warning" />
<Rules AnalyzerId="Microsoft.Analyzers.ManagedCodeAnalysis" RuleNamespace="Microsoft.Rules.Managed">
<Rule Id="CA1004" Action="None" />
<Rule Id="CA1006" Action="None" />
<Rule Id="CA1020" Action="None" />
<Rule Id="CA1025" Action="None" />
<Rule Id="CA1032" Action="None" />
<Rule Id="CA1054" Action="None" />
<Rule Id="CA1055" Action="None" />
<Rule Id="CA1056" Action="None" />
<Rule Id="CA1062" Action="None" />
<Rule Id="CA1300" Action="None" />
<Rule Id="CA1303" Action="None" />
<Rule Id="CA1704" Action="Warning" />
<Rule Id="CA1709" Action="None" />
<Rule Id="CA2007" Action="None" />
<Rule Id="CA2225" Action="None" />
<Rule Id="CA2227" Action="None" />
<Rule Id="CA2233" Action="None" />
<Rule Id="CA2234" Action="None" />
<Rule Id="CA2237" Action="None" />
<Rule Id="CS1591" Action="None" />
<Rule Id="CA1715" Action="None" />
</Rules>
<Rules AnalyzerId="StyleCop.Analyzers" RuleNamespace="StyleCop.Analyzers">
<Rule Id="SA1101" Action="None" />
<Rule Id="SA1116" Action="None" />
<Rule Id="SA1117" Action="None" />
<Rule Id="SA1118" Action="None" />
<Rule Id="SA1208" Action="None" />
<Rule Id="SA1600" Action="None" />
<Rule Id="SA1601" Action="None" />
<Rule Id="SA1602" Action="None" />
<Rule Id="SA1623" Action="None" />
<Rule Id="SA1633" Action="None" />
<Rule Id="SA1634" Action="None" />
<Rule Id="SA1637" Action="None" />
<Rule Id="SA1640" Action="None" />
<Rule Id="SA1652" Action="None" />
<Rule Id="SA0001" Action="None" />
<Rule Id="SA1314" Action="None" />
</Rules>
</RuleSet>