在 Visual Studio 2013 中,特殊代码(方法、属性、字段、…)的引用数量由 Code Lens 显示。我想在 Visual Studio中获得未使用的 (零参考)代码。 有没有办法得到它们?
可能实现您所追求的最好和最简单的方法是使用带有 Visual Studio 的内置代码分析工具来查找并直接将您带到死代码和未使用的成员。
为此,我创建了一个新的代码分析规则集文件(通过 File- >New->File,确保选择了左侧窗格中的 General 并向下滚动以找到 Code Analysis Rule Set ,给它一个文件名,然后搜索和选择以下规则)。请参阅下面的规则集文件的内容,您可以将其复制并粘贴到扩展名为 .ruleset 的新文件中以供使用。
给定一个规则集文件,可以在“解决方案资源管理器 ”面板中右键单击项目文件,然后选择“ 属性 ” 。在项目属性窗口中,单击左侧面板中的 代码分析 选项卡,然后单击 打开 以浏览到 .ruleset 文件的位置。如果您转到解决方案文件(而不是项目文件)的属性,您可以在一个地方为解决方案中的每个项目设置代码分析文件(在 Code Analysis Settings 下,并使用下拉菜单选择规则集文件。注意:您之前必须浏览到规则集文件,它才能显示在此属性窗口的下拉列表中)。
然后您只需对项目/解决方案运行代码分析(通过分析- > 在解决方案上运行代码分析-或- Alt+F11 ),它会以警告、任何未引用的方法或它找到的未使用成员的形式返回。它甚至会找到被方法引用的方法,而该方法本身在其他地方没有引用。
但是要小心,因为死代码的代码分析可能会导致您出错的一种方式是,如果仅通过委托调用该方法,当然还有反射,引用是否被“隐藏”。
具体来说,检测死代码的规则是:
以下是 .ruleset 文件的内容,您可以按照上述步骤获得,以方便您使用。您可以简单地复制以下 XML,将其粘贴到 notepad++ 中,使用扩展名 .ruleset 保存在某处,然后按上述说明浏览并使用:
<?xml version="1.0" encoding="utf-8"?> <RuleSet Name="Dead Code Rules" Description=" " ToolsVersion="12.0"> <Rules AnalyzerId="Microsoft.Analyzers.ManagedCodeAnalysis" RuleNamespace="Microsoft.Rules.Managed"> <Rule Id="CA1801" Action="Warning" /> <Rule Id="CA1804" Action="Warning" /> <Rule Id="CA1811" Action="Warning" /> <Rule Id="CA1812" Action="Warning" /> <Rule Id="CA1823" Action="Warning" /> </Rules> <Rules AnalyzerId="Microsoft.Analyzers.NativeCodeAnalysis" RuleNamespace="Microsoft.Rules.Native"> <Rule Id="C6259" Action="Warning" /> </Rules> </RuleSet>