用途:为现有 .NET 项目添加并配置代码分析器,覆盖内置 Roslyn CA 规则、可空引用类型强制、裁剪/AOT 兼容性分析器及第三方分析器包。
主要能力:通过 AnalysisLevel 控制内置分析器规则集(latest、latest-minimum、latest-recommended、latest-all 或 9-all、10-all 等版本锁定值),配合 EnforceCodeStyleInBuild、TreatWarningsAsErrors。可在 .editorconfig 中按规则调整严重级别,如 dotnet_diagnostic.CA1062.severity = none、dotnet_diagnostic.CA1822.severity = error。支持按项目类型做常见抑制(ASP.NET Core 抑制 CA2007,库保留 CA2007 警告,测试项目放宽 CA1707、CA1062、CA2007)。可启用可空引用类型(<Nullable>enable</Nullable>,警告为 CS86xx,可逐文件 #nullable enable)。可启用裁剪与 AOT 分析器:EnableTrimAnalyzer、EnableAotAnalyzer、EnableSingleFileAnalyzer,库用 IsTrimmable、IsAotCompatible 声明兼容性。第三方分析器经 Directory.Build.targets 添加,如 Meziantou.Analyzer、Microsoft.CodeAnalysis.BannedApiAnalyzers、Microsoft.CodeAnalysis.PublicApiAnalyzers、SonarAnalyzer.CSharp,配合 CPM 在 Directory.Packages.props 写版本。BannedApiAnalyzers 需在仓库根创建 BannedSymbols.txt 并通过 AdditionalFiles 引入。
使用方式:先运行 dotnet-version-detection 确认 SDK 版本,再运行 dotnet-project-analysis 了解项目结构;在 Directory.Build.props 设置 AnalysisLevel 等属性,在 .editorconfig 覆盖严重级别,在 Directory.Build.targets 添加第三方包;大型代码库可先用 latest-recommended 并用 NoWarn 临时屏蔽待处理类别,逐步移除。
适用场景:新项目或存量 .NET 项目的分析器接入与渐进式治理。
限制:分析器特性随 SDK 版本变化;可空分析产生 CS86xx 警告而非 CA 规则;具体包版本与效果需以实际项目为准,资料未提供更多平台或收费信息。