Visual Studio 2015 - "Analyzers" 引用是什么意思?

Visual Studio 2015 - What does the "Analyzers" reference mean?

在 Visual Studio 2015 预览版中创建一个普通的 C# 控制台应用程序,我们得到一个名为 "Analyzers":

的伪引用


上面的 "Analyzers" 引用是什么意思?

项目文件里面什么都没有,属性 window 没有显示关于这个条目的任何内容(完全空白)(尽管与 "reference properties" 相反,它在 header,但这并不能说明什么)。

我希望这与罗斯林有关,但我不知道。我安装了 ReSharper,但我不认为它与它有任何关系。

编辑 6.8.2016

接受的答案解释了分析器提供的工具,但没有说明为什么 开发工具 成为(运行时?)参考。实际上它不是运行时引用,不像其他引用。所以这个奇迹的答案是 Hans Passants 下面的评论:

They picked a clumsy place to add the code analyzers feature, they just couldn't find a better place without drastically overhauling the solution explorer and nuget. – Hans Passant May 26 '15 at 8:59

实时代码分析器 用于添加在您键入时实时显示的自定义错误消息和警告,以及自动代码修复以帮助您清理它们。它们以 NuGet 包的形式提供,您可以在 Visual Studio 2015 年添加到您的项目中。

它是 Visual Studio 2015 年最重要且最有帮助的关键新功能之一,它允许 NuGet 包在您键入代码时在编辑器中实时启用自定义警告和错误,并具有自动代码修复功能,可以清理为我们提出这些问题。

包甚至可以作为“代码感知库”捆绑在一起,同时引入 API 和特定领域的分析器,以确保您在使用它时保持正确。

我们从下载 NuGet 包的那一刻起就有针对性的指导。由于这些分析器是我们项目的一部分,您团队中的每个人都会看到相同的警告。

编辑 1:

分析器附加了如下规则:

These rules focus on the most critical problems in your code, including potential security holes, application crashes, and other important logic and design errors. You should include this rule set in any custom rule set you create for your projects.

目前有许多优秀的分析器可用 – Microsoft.AnalyzerPowerPack、Code Cracker、CSharp Essentials、SonarLint 等

这些分析器中的每一个都有自己的规则集,因此我们可以根据我们的要求决定添加哪个分析器。通过 Nuget 安装后,VS2015 中的灯泡和快速操作将获取相关规则集并为开发人员提供即时编码帮助。