c# - 使用 .net 标准项目配置代码分析
问题描述
我们有一个自定义规则集(从早期的 .net 框架项目创建)
我将规则集添加到我们新项目的文件中:
<PropertyGroup>
<CodeAnalysisRuleSet>c:\CodeAnalysis\CustomCodeAnalysisRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
我在项目上安装了 Microsoft.CodeAnalysis.FxCopAnalysers nuget 包。
在运行代码分析时,我发现我们自定义规则集中的一些规则被检查了,而另一些则没有。我发现解决方案资源管理器中的 Dependencies > Analyzers > Microsoft.CodeQuality.Analysers 下有一个规则列表。那些似乎是被检查的那些,因为没有被分析器验证的规则没有列出。
起初我认为我们的规则集被完全忽略了,但如果我修改我们规则集中的“工作”规则之一的严重性状态(也列在解决方案资源管理器中的分析器下),严重性也会在另一个位置发生变化,因此这两个规则的位置之间存在“链接”。
为什么我们的规则集中的某些规则(例如 CA1062、CA1031 和 CA1047)未列在 Dependencies > Analyzers > Microsoft.CodeQuality.Analysers 下,而其他规则(例如:CA1061、CA1063、CA1064 等)?
最重要的是,如何确保自定义规则集中的所有规则都经过验证?
微软文档(https://docs.microsoft.com/en-us/visualstudio/code-quality/install-roslyn-analyzers?view=vs-2017)说:
在 www.nuget.org 上找到要安装的分析器包。例如,您可能希望安装 Microsoft FxCop 分析器来检查您的代码是否存在安全和性能问题等。
据我了解(当我在 nuget 包管理器中搜索“代码分析”时观察到),有许多可用的分析器(仅来自 Microsoft,但也来自其他提供商),但 Microsoft 似乎总是以 FxCopAnalysers 为例。
但是我仍然不知道我是否必须安装哪个,以及要检查我们所有的自定义规则。
解决方案
根据我的发现,似乎旧 FxCop 的所有规则还没有移植到 roslyn 的新 FxCop 分析器中。
推荐阅读
- ionic-framework - 离子应用程序启动时,Android 8 连接到权限弹出允许/拒绝事件
- algorithm - 资格跟踪算法,更新顺序
- python - 自定义 Python unidecode 模块
- visual-studio - Visual Studio 找不到 debuggerutils.h
- php - 为什么我的 MySQL 事件调度程序没有运行?
- botframework - 清除对话窗口
- android - 使用值更改 Android 背景颜色
- linux - 将文件转换为 UTF-8 并保留修改时间戳
- regex - 记事本中的正则表达式 - 在双倍空格后保留文本并删除双倍空格
- c - 删除链表中的第一个节点