在Visual Studio 2013中,特殊代码(方法,属性,字段等)的引用数量由Code Lens显示。我想在Visual Studio中获取未使用的(零参考)代码。有什么办法让他们吗?
我的意思是下面的参考:
public
不搜索整个代码库,就无法确定a 是否未使用。但是,对于未使用的内部部件和私有部件,如果启用了适当的警告,则Code Analysis将警告您。
在Visual Studio 2013中,特殊代码(方法,属性,字段等)的引用数量由Code Lens显示。我想在Visual Studio中获取未使用的(零参考)代码。有什么办法让他们吗?
public
不搜索整个代码库,就无法确定a 是否未使用。但是,对于未使用的内部部件和私有部件,如果启用了适当的警告,则Code Analysis将警告您。
Answers:
实现目标的最好和最简单的方法可能是使用Visual Studio的内置代码分析工具来查找并直接将您带到无效代码和未使用的成员。
为此,我创建了一个新的代码分析规则集文件(通过File-> New-> File,确保已选择左窗格中的General并向下滚动以找到Code Analysis Rule Set,为其提供文件名,然后搜索和选择以下规则)。请参见以下内容,以获取可以复制并粘贴到扩展名为.ruleset的新文件中以使用的规则集文件的内容。
给定一个规则集文件,可以在“ 解决方案资源管理器”面板中右键单击一个项目文件,然后选择“ 属性”。在项目属性窗口中,单击左侧面板中的“代码分析”选项卡,然后单击“ 打开”以浏览到.ruleset文件的位置。如果转到解决方案文件(而不是项目文件)的属性,则可以在一个位置(在“代码分析设置”下)为解决方案中的每个项目设置代码分析文件,然后使用那里的下拉菜单选择注意:您以前必须已经浏览到规则集文件才能显示在此属性窗口的下拉菜单中。
然后,您只需在项目/解决方案上运行代码分析(通过分析 - >在解决方案上运行代码分析 -OR- 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>
https://scottlilly.com/c-code-quality-improvement/remove-unused-classes-properties-and-functions/
“很不幸,[在Visual Studio Analysis中,您只能检测未使用的私有成员。这是因为代码分析器假定公共成员可能被其他程序使用。如果通过Web服务将它们作为API发布,则可能是正确的。或将您的代码发布为库。ReSharper具有类似的代码分析功能-优点是可以检查未使用的公共成员。”
这是一种完成此目的的手动方法,我用它来查找标记为public的未使用的类。
注意:如果您不遵循每个文件一个类的规则,这将需要做更多的工作。另外,您将需要验证所有外部项目没有使用任何API服务终结点。