c# - 列出 Visual Studio 2019 中未引用的文件?

标签 c# visual-studio .net-core visual-studio-2019

我一直在一个仅包含 的解决方案中进行了大量实验。 .NET 核心 3.1 项目,我注意到结果有很多不必要/未使用的代码。
有没有办法列出我的解决方案中没有在其他任何地方引用的所有代码?
我知道 Visual Studio 2019 具有 CodeLens 功能,可以显示是否引用了一段代码,但手动检查每个文件显然不是我想要的。
在旧版 Visual Studio 的现有答案中,FxCop tool被多次提及,但正如您在 Microsoft 页面上看到的那样,它不再更新。我也尝试运行 Code Analysis在我的解决方案上,但由于我无法为我的解决方案配置分析参数,这也没有任何意义。我什至尝试在项目级别配置代码分析,但 Visual Studio 没有将我的项目识别为分析的候选对象。

最佳答案

您可以使用来自 this answer 的规则集让您的 CodeAnalysis 向您展示未使用的代码:

<?xml version="1.0" encoding="utf-8"?>
<RuleSet Name="Dead Code Rules" Description=" " ToolsVersion="12.0">
  <Rules AnalyzerId="Microsoft.Analyzers.ManagedCodeAnalysis" RuleNamespace="Microsoft.Rules.Managed">
    <Rule Id="CA1801" Action="Warning" />
    <Rule Id="CA1804" Action="Warning" />
    <Rule Id="CA1811" Action="Warning" />
    <Rule Id="CA1812" Action="Warning" />
    <Rule Id="CA1823" Action="Warning" />
  </Rules>
  <Rules AnalyzerId="Microsoft.Analyzers.NativeCodeAnalysis" RuleNamespace="Microsoft.Rules.Native">
    <Rule Id="C6259" Action="Warning" />
  </Rules>
</RuleSet>
编辑:您可以使用 this step by step guide构建您的规则集。
编辑 2:由于分步指南已经过时,这里有一种激活所需规则的新方法:
  • 转到项目的属性页面(右键单击 -> 属性)
  • 转到“代码分析”,最后一个选项卡
  • 点击“配置”
  • 输入“未使用”并激活您想要的所有规则
  • 在右侧,可选择将操作设置为“错误”以获得额外注意
  • 保存 (ctrl+s)

  • 编辑 3:我们将保留规则集,但事实证明我有一个旧项目和新项目,您需要执行以下操作:
  • 如果您的目标框架低于 .NET5,请安装 Microsoft.CodeAnalysis.FxCopAnalyzers Microsoft.CodeAnalysis.NetAnalyzers来自 NuGet(不推荐使用 FxCop)
  • 如果您还没有,请添加文件 .editorconfig给你解决方案
  • 像这样启用你想要的规则:[*.cs]dotnet_diagnostic.CA1822.severity = error

  • 在 editorconfig 文件中激活它们。

    关于c# - 列出 Visual Studio 2019 中未引用的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64152878/

    相关文章:

    c# - 如何将方法名称作为参数发送

    c# - 本地报告至 Excel

    c++ - C++ 中 64 位整数的奇怪行为

    android - OpenCV无法为ARM64目标构建(Android)

    c# - 在 NuGet nuspec 中使用 "dotnet"或 ".NETPlatform5.0"?

    c# - 在 .NET Core 3 中获取嵌入式资源内容的类型安全方式

    c# - 组合 2 个 linq 操作

    c# - 分配免费委托(delegate)或其他方式通过地址调用方法?

    visual-studio - Resharper 扩展管理器为空

    azure - 如何创建 GitHub 工作流程以将 Azure 容器组部署到 ACI?