.NET 分析器规则集优先级

.NET Analyzer Rulset priority

我多次出现分析器规则集,我 运行 和 CodeAnalysisRuleSet。有些是在公司范围内自动注入的(通过引用的 nuget 包中的道具文件),但在某些情况下,我想为我的特定解决方案或项目覆盖一些规则。

仅使用注入的规则集,按预期工作。仅使用解决方案规则集即可。但是当同时使用两者时,只有注入的有效,另一个被忽略。即使是解决方案规则集独有的规则也会被忽略。

我能否以某种方式合并两个规则集,而不在一个父文件中引用它们?因为它是一个 nuget 包,所以我不能使用 Include,因为 nuget 文件位于某个缓存文件夹中...

编辑 1:

我也尝试在 nuget 包文件中使用 Include,但该路径无法处理 MSBuild 众所周知的路径(如 MSBuildProjectDirectory 等)

我想通了:我将导入的规则集添加到 Directory.build.props 并覆盖了 Directory.build.targets 中的规则集。

重要的是添加完整的规则集文件,而不仅仅是增量,因为它没有合并。

另外一定要清洗溶液和close/reopen visual studio。更改不会立即生效(至少对于 VS 2022)