Visual Studio 2013中,特殊代码(方法、属性、字段等)的引用数量由代码镜头显示。 我想在Visual Studio中获取未使用的(零基准)代码。有没有办法得到他们?
要实现您所追求的目标,最好也是最简单的方法可能是使用VisualStudio的内置代码分析工具来查找并直接找到死代码和未使用的成员。
为此,我创建了一个新的代码分析规则集文件(通过文件->新建->文件,确保左窗格中的一般的被选中,并向下滚动以找到代码分析规则集,为其提供一个文件名,然后搜索并选择以下规则)。有关规则集文件的内容,请参阅下文,您可以将其复制并粘贴到扩展名为.ruleset的新文件中以供使用。
给定一个规则集文件,用户可以右键单击“解决方案资源管理器 ”面板中的项目文件,然后选择“属性 ”。在“项目属性”窗口中,单击左侧面板中的“代码分析 ”选项卡,然后单击“打开 ”以浏览到.ruleset文件的位置。如果转到解决方案文件(相对于项目文件)的属性,则可以在一个位置为解决方案中的每个项目设置代码分析文件(在代码分析设置下),并使用此处的下拉列表选择规则集文件。注意:您以前必须浏览到规则集文件才能使其显示在此“属性”窗口的下拉列表中。
然后,您只需对项目/解决方案运行代码分析(通过分析->对解决方案运行代码分析或Alt+F11),它将以警告、任何未引用的方法或未使用的成员的形式返回。它甚至会找到被某个方法引用的方法,而该方法本身在其他地方没有引用。
但是,要小心,因为对死代码的代码分析可能会误导您,如果引用是“隐藏”的,则只能通过委托(当然还有反射)调用方法。
具体来说,检测死代码的规则是:
下面是.ruleset文件的内容,可以按照上面的步骤获得,以方便您使用。您可以简单地复制下面的XML,将其粘贴到记事本++中,以扩展名。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>
这里有一种手动方法来实现这一点,我用它来查找标记为公共的未使用的类。
注意:如果您不遵循每个文件一个类的规则,这将需要更多的工作。此外,任何API服务端点都需要验证它没有被任何外部项目使用。
https://scottlilly.com/c-code-quality-improvement/remove-unused-classes-properties-and-functions/.
";遗憾的是,[在Visual Studio Analysis中]您只能检测未使用的 私人会员。这是因为代码分析器假定公共 成员可能被其他程序使用。这可能是真的,如果你 通过Web服务将它们发布为API或发布您的代码 作为一个图书馆。ReSharper具有类似的代码分析功能 检查未使用的公共成员的优点。
我会浏览每个文件,按Ctrl-M-O命令折叠所有内容,然后滚动查找引用0。
在Visual Studio|“错误列表”选项卡|“消息”选项卡中: 消息IDE0051私有成员“ xxxxxxxx ”未使用。
我能找到的最好的解决方案是ReSharper,然后您可以运行该工具的分析并查找“类型成员从未使用”。我知道这并不理想,但这是我能找到的最好的解决方案。