Visual Studio 2015 - “Analyzers”参考是什么意思?

74
在Visual Studio 2015 Preview中创建一个普通的C#控制台应用程序,在“引用”中会出现一个名为“Analyzers”的伪参考:

这个“Analyzers”参考代表什么意思?项目文件里没有任何信息,属性窗口关于此条目显示为空白(尽管与“引用属性”不同,它的标题中写着“文件夹属性”,但这并没有说服力)。我原本以为这与Roslyn有关,但我不确定。我安装了ReSharper,但我不认为它与此有任何关系。

编辑于2016年6月8日:接受的答案解释了分析器提供的工具,但未说明为什么一种开发工具会成为(运行时?)参考。实际上,它不是像其他参考一样作为运行时参考。关于这个奇迹的答案在Hans Passant的下面评论中得到解释:
他们选择了一个笨拙的位置来添加代码分析器功能,如果不彻底改造解决方案资源管理器和NuGet,他们就找不到更好的位置。- Hans Passant May 26 '15 at 8:59

2
就我个人而言,在我的VS2015预览虚拟机中,我尚未安装ReSharper,并且我也看到了“分析器”引用。 - Chris W. Rea
当选择分析器时,属性窗格会显示什么内容? - DLeh
3
这是一个带有有趣内容的分析器示例。 - Rawling
这可能会告诉你更多相关信息:http://channel9.msdn.com/Events/Visual-Studio/Connect-event-2014/714 - DLeh
谢谢提供有建设性的链接。浏览它们时,分析器听起来像是开发时间的东西,所以想知道为什么它出现在参考资料中。我会找时间做好功课的。感谢大家。 - citykid
3
他们选择了一个笨拙的位置来添加代码分析器功能,他们只能在不彻底改变解决方案资源管理器和NuGet的情况下找到更好的位置。 - Hans Passant
2个回答

60

实时代码分析器用于添加自定义的错误消息和警告,这些消息在您输入代码时实时出现,并提供自动代码修复功能,帮助您清理它们。它们作为NuGet包提供,您可以将其添加到Visual Studio 2015项目中。

它是Visual Studio 2015最好且最有用的新功能之一,可让NuGet包在您输入代码时在编辑器中启用自定义警告和错误,并提供自动代码修复功能,以帮助我们清理这些问题。

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

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

Edit 1:

分析器附带以下规则:

enter image description here

  

这些规则关注代码中最重要的问题,包括潜在的安全漏洞、应用程序崩溃和其他重要的逻辑和设计错误。您应该包括这个规则集在您为项目创建的任何自定义规则集中。


4
感谢您的回复,但问题仍未解决:为什么会有参考(程序集)?我们进行了10年的代码分析,从未出现过参考。请阅读我之前的问题:即使我没有下载任何NuGet软件包,为什么会有参考? - citykid
@citykid 如果你仔细观察右键单击分析器时,你会看到“管理 NuGet 包”,但即使我们没有安装 NuGet 包,为什么它会出现呢?谢谢。 - Tharif
2
变得更清晰了,因此Analyers节点是分析器的文件夹。我在NuGet中没有看到任何东西,在上下文菜单中的条目是“添加分析器”和“打开活动规则集”。在添加分析器后,我可以浏览程序集。 - citykid

18

目前有许多优秀的分析器可供使用,例如Microsoft.AnalyzerPowerPack、Code Cracker、CSharp Essentials和SonarLint等。

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接