获取 Visual Studio 中的零参考代码列表
Get List of Zero Reference Codes in Visual Studio
2013年visual studio特殊代码(方法,属性,领域,...)的引用数由代码镜头显示.
我想在 visual studio 中获取未使用的 (零引用) 代码。有什么办法可以得到吗?
我的意思是参考以下:
实现您所追求的目标的最好和最简单的方法可能是使用带有 Visual Studio 的内置代码分析工具来查找并直接将您带到死代码和未使用的成员。
为此,我创建了一个新的代码分析规则集文件(通过 File->New->File,确保 General在左窗格中进行了 select 编辑并向下滚动以查找 代码分析规则集 ,为其指定文件名,然后搜索并 select 编辑以下规则) .请参阅下面的规则集文件内容,您可以复制并粘贴到扩展名为 .ruleset 的新文件中以供使用。
给定一个规则集文件,可以在 Solution Explorer 面板中右键单击项目文件,然后 select Properties.在项目属性 windows 中,单击左侧面板中的 Code Analysis 选项卡,然后单击 Open 浏览到 .规则集文件的位置。如果转到解决方案文件(而不是项目文件)的属性,则可以在一个地方为解决方案中的每个项目设置代码分析文件(在 代码分析设置 下, 然后使用那里的下拉列表 select 规则集文件。注意:您必须之前已经浏览到规则集文件才能显示在此属性 window 的下拉列表中,但是).
然后您只需 运行 projects/solution 上的代码分析(通过 Analyze->运行 代码分析解决方案 -OR- Alt+F11) 它会以警告的形式返回,发现任何未引用的方法或未使用的成员。它甚至会找到被某个方法引用的方法,该方法本身在其他地方没有引用。
但是要小心,因为死代码的代码分析可能会误导您的方法之一是,如果引用是 'hidden' 仅通过委托调用方法,并且当然,反思。
检测死代码的规则,具体是:
- 不从任何其他代码调用的私有方法 (CA1811)
- 未使用的局部变量 (CA1804)
- 未使用的私有字段 (CA1823)
- 未使用的参数 (CA1801)
- 未从任何其他代码 (CA1812) 实例化的内部 类。
- 按位或限位开关 (C6259) 中的死代码
以下是按照上述步骤得到的.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>
这是一种手动方法来完成此操作,我用它来查找标记为 public.
的未使用 类
- 搜索解决方案中一个项目的所有 "public class" 并将其替换为 "private class"。可能还需要替换 "public static class" and/or "public abstract class".
- 构建以找出所有错误
- 对于构建中的每个错误,使用您的源代码管理来恢复引用的文件 class。
- 重复每个错误,直到构建成功。
- 任何未恢复的剩余文件都可能被删除。
- (可选)重命名上述文件中的 classes 并再构建一次以查找错误。
- 最后一次搜索要删除的 class 的名称,以确认它没有任何实例用于反射或魔术字符串。
- 删除已识别的 class 个未使用的文件。
- 对要清理的每个解决方案项目重复此操作。
注意:如果您不遵循每个文件一个 class 的规则,这将需要做更多的工作。此外,您需要验证任何 API 服务端点是否未被任何外部项目使用。
https://scottlilly.com/c-code-quality-improvement/remove-unused-classes-properties-and-functions/
"Unfortunately, [in Visual Studio Analysis] you can only detect unused
private members. This is because the code analyzer assumes public
members might be used by other programs. This could be true if you’re
publishing them as an API through a web service or releasing your code
as a library. ... ReSharper has similar code analysis functions – with
the advantage of checking for unused public members."
我会浏览每个文件,执行 Ctrl-M-O 命令折叠所有内容,然后滚动查找参考 0。
在Visual Studio |错误列表选项卡 |消息选项卡:
消息 IDE0051 私有成员 'xxxxxxxx' 未使用。
2013年visual studio特殊代码(方法,属性,领域,...)的引用数由代码镜头显示. 我想在 visual studio 中获取未使用的 (零引用) 代码。有什么办法可以得到吗?
我的意思是参考以下:
实现您所追求的目标的最好和最简单的方法可能是使用带有 Visual Studio 的内置代码分析工具来查找并直接将您带到死代码和未使用的成员。
为此,我创建了一个新的代码分析规则集文件(通过 File->New->File,确保 General在左窗格中进行了 select 编辑并向下滚动以查找 代码分析规则集 ,为其指定文件名,然后搜索并 select 编辑以下规则) .请参阅下面的规则集文件内容,您可以复制并粘贴到扩展名为 .ruleset 的新文件中以供使用。
给定一个规则集文件,可以在 Solution Explorer 面板中右键单击项目文件,然后 select Properties.在项目属性 windows 中,单击左侧面板中的 Code Analysis 选项卡,然后单击 Open 浏览到 .规则集文件的位置。如果转到解决方案文件(而不是项目文件)的属性,则可以在一个地方为解决方案中的每个项目设置代码分析文件(在 代码分析设置 下, 然后使用那里的下拉列表 select 规则集文件。注意:您必须之前已经浏览到规则集文件才能显示在此属性 window 的下拉列表中,但是).
然后您只需 运行 projects/solution 上的代码分析(通过 Analyze->运行 代码分析解决方案 -OR- Alt+F11) 它会以警告的形式返回,发现任何未引用的方法或未使用的成员。它甚至会找到被某个方法引用的方法,该方法本身在其他地方没有引用。
但是要小心,因为死代码的代码分析可能会误导您的方法之一是,如果引用是 'hidden' 仅通过委托调用方法,并且当然,反思。
检测死代码的规则,具体是:
- 不从任何其他代码调用的私有方法 (CA1811)
- 未使用的局部变量 (CA1804)
- 未使用的私有字段 (CA1823)
- 未使用的参数 (CA1801)
- 未从任何其他代码 (CA1812) 实例化的内部 类。
- 按位或限位开关 (C6259) 中的死代码
以下是按照上述步骤得到的.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>
这是一种手动方法来完成此操作,我用它来查找标记为 public.
的未使用 类- 搜索解决方案中一个项目的所有 "public class" 并将其替换为 "private class"。可能还需要替换 "public static class" and/or "public abstract class".
- 构建以找出所有错误
- 对于构建中的每个错误,使用您的源代码管理来恢复引用的文件 class。
- 重复每个错误,直到构建成功。
- 任何未恢复的剩余文件都可能被删除。
- (可选)重命名上述文件中的 classes 并再构建一次以查找错误。
- 最后一次搜索要删除的 class 的名称,以确认它没有任何实例用于反射或魔术字符串。
- 删除已识别的 class 个未使用的文件。
- 对要清理的每个解决方案项目重复此操作。
注意:如果您不遵循每个文件一个 class 的规则,这将需要做更多的工作。此外,您需要验证任何 API 服务端点是否未被任何外部项目使用。
https://scottlilly.com/c-code-quality-improvement/remove-unused-classes-properties-and-functions/
"Unfortunately, [in Visual Studio Analysis] you can only detect unused private members. This is because the code analyzer assumes public members might be used by other programs. This could be true if you’re publishing them as an API through a web service or releasing your code as a library. ... ReSharper has similar code analysis functions – with the advantage of checking for unused public members."
我会浏览每个文件,执行 Ctrl-M-O 命令折叠所有内容,然后滚动查找参考 0。
在Visual Studio |错误列表选项卡 |消息选项卡: 消息 IDE0051 私有成员 'xxxxxxxx' 未使用。