You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

非SDK项目代码分析不显示CAxxx规则,如何检测未释放IDisposable?

解决非SDK项目中CA代码分析规则不生效的问题
  • 直接修改.csproj文件启用代码分析
    不用把整个项目转成SDK格式,只需要在现有非SDK项目的.csproj文件的<Project>标签内添加以下配置:

    <PropertyGroup>
      <EnableNETAnalyzers>true</EnableNETAnalyzers>
      <AnalysisMode>AllEnabledByDefault</AnalysisMode>
      <CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
    </PropertyGroup>
    

    其中MinimumRecommendedRules.ruleset已经包含检测未释放IDisposable对象的CA2000规则,也可以换成更严格的AllRules.ruleset。

  • 检查CA规则的启用状态
    打开「分析」->「配置代码分析」->「针对解决方案」,在窗口里找到你的项目,确认CA2000(或其他需要的CA规则)被设置为「警告」或「错误」,别被设成了禁用状态。

  • 手动指定分析器引用
    如果安装的NuGet包没起作用,在.csproj里手动添加分析器的引用,把版本号换成你实际安装的:

    <ItemGroup>
      <Analyzer Include="$(NuGetPackageRoot)microsoft.codeanalysis.netanalyzers\7.0.0\analyzers\dotnet\cs\*.dll" />
    </ItemGroup>
    
  • 清理缓存后重新分析
    先执行「生成」->「清理解决方案」,再重新构建项目,最后再次运行「分析」->「运行代码分析」->「针对解决方案」,避免旧缓存影响结果。

内容的提问来源于stack exchange,提问作者Badger

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 21:16:03