.Net Framework 项目的 Visual Studio 代码分析

问题描述

我正在尝试通过 Nuget 为现有的 .Net Framework 4.72 Web 应用程序启用代码分析。坦率地说,文档让我对安装哪些包感到困惑。

我已经通过 nuget 安装了 Microsoft.CodeAnalysis.NetAnalyzers

以下是我的 csproj 文件

  <PropertyGroup>
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
    ...
    <EnableNETAnalyzers>true</EnableNETAnalyzers>
    <AnalysisMode>AllEnabledByDefault</AnalysisMode>

这段代码加载有问题,但我只列出了以下两项:

warning CA2237: Add [Serializable] to ParseException as this type implements ISerializable
warning CA1001: Type 'Repository' owns disposable field(s) '_context' but is not disposable

还有其他包要加载吗?

解决方法

如果您看到 CA*** 诊断信息,则说明它正在运行。

您可以通过“依赖项”树(展开分析器节点)在您的项目中打开更多诊断。

此外,您必须向解决方案中的每个项目添加此 PackageReference 和相关属性。您可能希望在 Directory.Build.props 文件中执行此操作。

为什么您认为您应该看到更多诊断信息?

,

答案在 .Net Framework 项目的 References\Analyzers 节点中。 我可以验证 Microsoft.CodeAnalysis.NetAnalyzers 的存在。 规则现在默认为最小值,这意味着我的应用中只有 2 个问题。

右键单击分析器|打开活动规则集...,可以自定义规则。

它没有帮助这个遗留项目有点不稳定。我必须创建一个新项目并引入 Analyzer peices。