我们有一个自定义规则集(从早期的.net框架项目创建)
我将规则集添加到了新项目的文件中:
<PropertyGroup>
<CodeAnalysisRuleSet>c:\CodeAnalysis\CustomCodeAnalysisRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
我在项目上安装了Microsoft.CodeAnalysis.FxCopAnalysers nuget软件包。
在运行代码分析时,我发现检查了自定义规则集中的一些规则,而没有检查其他规则。我发现解决方案资源管理器中的“依赖关系”>“分析器”>“ Microsoft.CodeQuality.Analysers”下有一个规则列表。 这些似乎已被检查,因为未在分析器中验证的规则未在此处列出。
起初我以为我们的规则集被完全忽略了,但是如果我修改了规则集中“工作”规则之一的严重性状态(在解决方案资源管理器中的“分析器”下也列出了该规则),严重性也会在另一个位置,因此这两个规则的位置之间存在一个“链接”。
为什么我们的规则集中的某些规则(例如CA1062,CA1031和CA1047)未在“依赖关系”>“分析器”>“ Microsoft.CodeQuality.Analysers”下列出,而其他规则(例如:CA1061,CA1063,CA1064等)未列出?>
最重要的是,如何确定自定义规则集中的所有规则都得到验证?
Microsoft文档(https://docs.microsoft.com/en-us/visualstudio/code-quality/install-roslyn-analyzers?view=vs-2017)说:
在www.nuget.org上找到要安装的分析仪软件包。对于 例如,您可能需要将Microsoft FxCop分析器安装到 检查您的代码是否存在安全和性能问题。
据我了解(并在nuget软件包管理器中搜索“代码分析”时观察到),有许多可用的分析器(仅来自Microsoft,但也来自其他提供商),但是Microsoft似乎总是以FxCopAnalysers为例。
但是我仍然不知道是否要安装所有自定义规则,以及必须安装哪一个。
答案 0 :(得分:0)
根据我的发现,似乎旧FxCop的所有规则尚未移植到roslyn的新FxCop分析仪中。