罗斯林分析仪。 如何快速准确地编写代码

.NET编译器平台Roslyn甚至可以在代码运行之前帮助检测错误。 一个示例是Roslyn拼写检查器,它内置在Visual Studio中。 假设您创建了一个静态方法,并意外地将static一词写成statc。 甚至在运行代码之前,您就可以看到此拼写错误,因为Roslyn甚至在完成键入之前在输入文本时也会在代码中发出警告。 换句话说,您无需构建代码即可发现自己犯了一个错误。

图片

Roslyn分析仪还可以使用Visual Studio灯泡图标显示自动代码更正,这使您可以立即更正代码。

图片

但是,如果您可以发现更多错误,该怎么办?


让我向您介绍罗斯林分析仪套件。 这些分析器集合提供了更详细的分析,但没有默认的Visual Studio工具提供。 要了解有关我们最喜欢的Roslyn分析仪的更多信息,请访问GitHub上的Roslyn分析仪存储库 。 该存储库包含FxCop规则,这些规则仍然适用于现代软件开发,但现在针对我们基于Roslyn的现代代码分析平台。 让我们继续并安装此软件包,以提高生产率和编写出色代码的速度!

安装FxCop分析仪:

  1. 我假设您使用的是Visual Studio 2017 15.8版或更高版本。 如果是这样,请选择最新版本的Microsoft.CodeAnalysis.FxCopAnalyzers
  2. 使用程序包管理器UI在Visual Studio中安装程序包。

图片

安装软件包后,您只需在解决方案资源管理器中配置分析仪诊断即可。 分析器节点出现在解决方案资源管理器中的“引用或依赖项”节点下。 如果先部署分析仪,然后再部署一个分析仪部件,则可以在部件中看到所有可用的诊断信息。

图片

您可以在“属性”窗口中查看诊断属性,包括“描述”和“默认严重性”项目。 要查看属性,请右键单击规则并选择“ 属性”,或者选择规则,然后按Alt + Enter

图片

解决方案资源管理器中每种诊断类型旁边的图标对应于在编辑器中打开规则集时出现在规则集中的图标:

  • 圆圈中的“ I”表示Info参数
  • “!” 三角形表示警告参数
  • 圆圈中的“ X”表示错误参数
  • 圆圈中的“ I”表示隐藏参数
  • 圆圈中的“↓”表示诊断受到抑制。

图片

然后,您可以在解决方案资源管理器中设置严重性设置。 首先,为此,您需要在解决方案资源管理器中展开“ 依赖关系” >“ 分析器” ,然后部署包含要为其设置严重性参数的规则的程序集。 之后,您应该右键单击该规则,选择“ 设置规则集严重性”,然后在弹出菜单中选择一种严重性参数。

图片

如果设置了警告,则在代码中将收到关于这组特定规则的警告。

图片

现在您了解了分析器的工作原理,可以提高生产率并更快地编写出色的代码!

常见问题解答:


:在Visual Studio中工作时,遇到了以下警告:“不建议使用运行代码分析,而建议使用在构建过程中运行的FxCop分析器。 请参阅aka.ms/fxcopanalyzers迁移到FxCop分析仪。 什么意思
:FxCop是在Roslyn之前将近十年的代码分析工具。 正如我们移植编译器(例如,引入Roslyn)一样,我们也将代码分析技术移植到Roslyn平台。 由于它运行在.NET编译器平台上,因此在您键入时可能会在代码中生成警告。 换句话说,无需构建代码来找出有关错误的信息。

:传统FxCop和FxCop分析仪之间有什么区别?
:FxCop分析器可以实时并在编译时分析源代码,而旧版FxCop是静态代码分析,并在构建完成后分析二进制文件。 有关更多信息,请参见Roslyn分析仪vs .。 静态代码分析FxCop分析器常见问题

:我可以编写自己的分析仪吗?
A :当然可以! 有关编写分析器的文档在这里

:我应该使用Roslyn或.editorconfig解析器来编写代码样式吗?
:Roslyn分析器和.editorconfig文件可以协同工作。 当您在.editorconfig文件文本编辑器选项页中定义代码样式 ,实际上是在配置Visual Studio中内置的Roslyn分析器。

:分析仪是否在连续集成(CI)组件中工作?
:是的,安装为NuGet软件包的分析仪可以在CI组件中使用。

:在哪里可以请求更多分析仪或报告错误?
:您可以在GitHub 的Roslyn存储库中请求更多分析器并报告错误。

Source: https://habr.com/ru/post/zh-CN459982/


All Articles