【问题标题】:Visual Studio Code Analysis on .Net Framework Projects.Net Framework 项目上的 Visual Studio 代码分析
【发布时间】:2021-06-24 11:46:24
【问题描述】:

我正在尝试通过 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

还有其他要加载的包吗?

【问题讨论】:

  • 如果您安装了Microsoft.CodeAnalysis.NetAnalyzers NuGet 包,则不应将EnableNETAnalyzers 属性添加到您的项目文件或Directory.Build.props 文件中。安装 NuGet 包并将EnableNETAnalyzers 属性设置为true 时,会生成生成警告。详情请看这篇文章:docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/…

标签: c# asp.net-mvc visual-studio roslyn-code-analysis


【解决方案1】:

如果您看到CA*** 诊断,那么它正在工作。

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

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

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

【讨论】:

    【解决方案2】:

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

    右键Analyzers|Open Active Ruleset...,可以自定义规则。

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

    【讨论】:

      猜你喜欢
      • 2012-03-30
      • 2020-04-22
      • 2015-11-15
      • 1970-01-01
      • 2011-07-29
      • 1970-01-01
      • 2017-08-18
      • 1970-01-01
      • 2018-10-05
      相关资源
      最近更新 更多