在.NET核心项目上启用Microsoft的代码分析

Str*_*ior 28 c# code-analysis roslyn-code-analysis

我们的团队使用自定义规则集的代码分析功能,如果我们忘记对方法参数执行null检查,则会导致构建失败.

但是,现在我们创建一个新的.NET Core项目时,它看起来并不像Code Analysis这些新项目的功能."项目属性"区域中没有用户界面,并且按照此处的建议向项目添加自定义规则集只会影响StyleCop Analyzers(SAxxxx规则).

有没有办法CAxxxx在.NET Core项目中启用Code Analysis()规则?

Str*_*ior 31

更新

显然,正确的方法是安装Microsoft.CodeAnalysis.FxCopAnalyzers NuGet包.即使在ASP.NET Core项目中,这也很有用,并且根本不需要<RunCodeAnalysis>标记.

原始答案

我意识到csproj文件中还有另一个标签,它实际上支持代码分析.<PropertyGroup>我的.csproj文件中的标记现在看起来像这样:

  <PropertyGroup>
    <TargetFramework>netstandard1.4</TargetFramework>
    <CodeAnalysisRuleSet>..\MyCompanyCodeAnalysisRules.ruleset</CodeAnalysisRuleSet>
    <RunCodeAnalysis>true</RunCodeAnalysis>
  </PropertyGroup>
Run Code Online (Sandbox Code Playgroud)

它的效果很好,至少在正常项目中是这样.ASP.NET Core项目产生以下错误:

CA0055 : Could not identify platform for 'C:\Source\...\bin\Debug\netcoreapp1.1\....dll'.
CA0052 : No targets were selected.
Run Code Online (Sandbox Code Playgroud)

  • @ScottLin:您仍然需要将`<CodeAnalysisRuleSet>`标记添加到项目文件中.NuGet方法仍将查找该标记以确定要检查的规则. (4认同)
  • 使用nuget软件包时,是否有文档说明您更新后的答案?例如,如果您使用nuget路线,如何使用自定义规则集? (2认同)