如何在 Visual Studio 中获取零引用/未引用代码的列表

2023-11-24

在 Visual Studio 2013 中,特殊代码(方法、属性、字段...)的引用数量如下所示代码镜头。 我想闲置(零参考)在视觉工作室中编写代码。有什么办法可以得到它们吗?

I mean below reference:
enter image description here


实现您所追求的目标的最佳和最简单的方法可能是使用 Visual Studio 的内置代码分析工具来查找并直接将您带到死代码和未使用的成员。

为此,我创建了一个新的代码分析规则集文件(通过文件->新建->文件, 确保General在左侧窗格中被选中并向下滚动以查找代码分析规则集,给它一个文件名,然后搜索并选择以下规则)。请参阅下文,了解您可以复制并粘贴到扩展名为 .ruleset 的新文件中以供使用的规则集文件的内容。

给定一个规则集文件,可以右键单击解决方案浏览器面板,然后选择特性。在项目属性窗口中,单击代码分析左侧面板中的选项卡,然后单击Open浏览到 .ruleset 文件的位置。如果您转到解决方案文件(而不是项目文件)的属性,则可以在一个位置(在代码分析设置,然后使用下拉菜单选择规则集文件。注意:但是,您之前必须浏览到规则集文件,它才能显示在此属性窗口的下拉列表中。

然后,您只需对项目/解决方案运行代码分析(通过分析 -> 对解决方案运行代码分析 -OR- Alt+F11)并且它将作为警告、它找到的任何未引用的方法或未使用的成员返回。它甚至会找到被某个方法引用的方法,而该方法本身在其他地方没有引用。

但要小心,因为死代码的代码分析可能会引导您错误的方法之一是,如果仅通过委托(当然还有反射)调用方法来“隐藏”引用。

具体来说,检测死代码的规则是:

  • 不从任何其他代码调用的私有方法 (CA1811)
  • 未使用的局部变量(CA1804)
  • 未使用的私有字段(CA1823)
  • 未使用的参数 (CA1801)
  • 未从任何其他代码实例化的内部类 (CA1812)。
  • 按位或限制开关 (C6259) 中的死代码

以下是 .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>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Visual Studio 中获取零引用/未引用代码的列表 的相关文章

随机推荐

  • 如何跟踪 WCF 序列化问题/异常

    我偶尔会遇到这样的问题 在 WCF 序列化期间 从我的 OperationContract 返回 DataContract 后 抛出应用程序异常 我收到的唯一 且意义不大 的消息是 System ServiceModel Communica
  • 发送至特定远程 IP 的第一个 UDP 消息丢失

    我正在开发一个基于 LAN 的解决方案 其中一个 服务器 必须控制多个 玩家 我选择的协议是 UDP 因为它很简单 我不需要连接 我的流量仅由时不时的短命令组成 我想使用混合广播消息进行同步 并使用单个目标消息进行玩家单独的命令 多播 TC
  • HTML 输入不允许数字

    现在我有一个像这样的输入字段
  • 在 SVN 中合并后我无法提交更改

    使用 TortoiseSVN 合并项目的两个分支后 我在提交更改时遇到了问题 详细信息如下 我做了一个合并分支到主干project我正在努力 Project包括主存储库和与主存储库联合的库 如下所示svn 外部 图书馆也有分支 作为子目录p
  • 如何将本地变量传递给远程“Invoke-Command”? [复制]

    这个问题在这里已经有答案了 我正在尝试使用以下命令检索位于远程服务器上的文件的哈希值Invoke Command 当我给出如下完整路径时 它工作得很好 Invoke Command ComputerName winserver Script
  • x86 上的堆栈对齐

    在 x86 32 位 平台上 当运行使用 gcc 4 8 1 编译的代码时 出现了一个神秘的总线错误 march pentium4 我将问题追溯到 SSE 指令 movdqa xmm5 0x50 esp esp 0xbfffedac mov
  • 如何在 Alamofire 中处理多个网络调用

    我需要在视图控制器中调用2个api来从服务器获取一些数据 我希望它们同时启动 但只有当它们都返回时才会触发下一步 不管成功还是失败 我可以想出两种解决方案 1 将它们链接在一起 调用api1 在api1的结果处理程序中调用api2 等待ap
  • 如何将函数应用于 Pandas 中的多列[重复]

    这个问题在这里已经有答案了 我有一堆需要在 Pandas 中清理的列 我写了一个函数来进行清理 我不确定如何将相同的函数应用于许多列 这是我正在尝试的 df Passengers Revenue Cost apply convert das
  • Passport.deserializeUser 为每个 HTTP 请求执行 DB(sequelize)命令

    我使用sequelize作为ORM和passport js passport local 进行身份验证 我注意到每个 HTTP 请求都会产生一个单独的数据库命令 我开始研究 deserializeUser 函数 加载单个页面时 这就是我得到
  • 如何获取数组的所有边?

    我有一个 n x n 数组 并且想要接收其轮廓值 例如 4 5 6 7 2 2 6 3 4 4 9 4 8 1 6 1 由此 我会得到这个 4 5 6 7 3 4 1 6 1 8 4 2 见粗体部分 所以本质上 什么是最高效的获取 2D 数
  • 使用position_dodge时出现geom_text问题

    I saw this答案但无法复制它 我得到的数据是这样的 df data frame x rep sample letters 4 2 y round runif 8 1 100 0 z c rep group1 4 rep group2
  • Snakemake 将文件夹定义为输出

    我尝试使用snakemake运行prokka并统治一切 在后者中 我定义了 prokka 将生成的所有输出文件夹以写入结果 Prokka 需要提供一个文件夹作为输出而不是文件 我所拥有的简化版本在这里 PATIENTID ls range
  • 为什么我必须删除 docker 容器?

    停止 docker 容器的哪些工件会留在主机文件系统上 从而需要运行命令 docker 容器修剪 我认为 docker 容器只是运行图像版本 而这些版本在退出后会被清除 如果情况并非总是如此 那么在什么情况下会留下工件 如果你不使用 rm当
  • 如何配置 Hibernate 以使用 SSL 与数据库服务器通信?

    我有一个现有的 java web 应用程序 它使用 Hibernate 来实现持久性 有人告诉我 我必须与加密的数据库对话 所以我的第一个想法是将其设置为通过 SSL 进行通信 并弄清楚如何设置 Oracle 以通过 SSL 侦听 JDBC
  • Android:消息意图

    我是安卓初学者 我需要知道是否有任何意图打开创建消息窗户 我尝试使用这段代码 Intent i new Intent Intent ACTION SEND i setType text plain 但是 它提出 Gmail Email Me
  • 分离时是否需要将 Fragment 接口侦听器设置为 null?

    在涉及回调的Fragment示例中 通常他们在onAttach方法中分配监听器 然后在onDetach方法中将监听器设置为null 最后一部分有必要吗 当片段分离 销毁时 侦听器不会自动设置为 null 吗 或者是否存在这样的情况 您可能会
  • 为 C# 评估者提供沙盒应用程序域的最佳证据

    我有一个 C 评估器 它使用 我认为 Net 4 新的简化沙盒应用程序域模型来托管 C 程序集 并通过远程处理完成其余的工作 创建应用程序域的调用是 Evidence ev new Evidence ev AddHostEvidence n
  • 为什么 DateTime.AddHours 似乎不起作用?

    当我这样做时 我得到相同的结果 1338161400 DateTime origin new DateTime 1970 1 1 0 0 0 0 DateTime date DateTime Parse 28 05 12 01 30 Tim
  • ASP.NET OLEDB 代码在 IIS7 上部署时中断

    我正在尝试编写一个简单的网站 ASP NET v4 它将调用 Windows 搜索 查找特定文件并将其返回给用户 我将以下内容作为示例 它调用 remoteserver 上的 Windows Search 服务 并返回 somefile t
  • 如何在 Visual Studio 中获取零引用/未引用代码的列表

    在 Visual Studio 2013 中 特殊代码 方法 属性 字段 的引用数量如下所示代码镜头 我想闲置 零参考 在视觉工作室中编写代码 有什么办法可以得到它们吗 I mean below reference 实现您所追求的目标的最佳