非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
相关产品推荐
相关产品推荐

