从Visual Studio项目中的项目中删除所有未使用的引用

时间:2010-07-01 10:50:44

标签: visual-studio

我只是想知道在各种Visual Studio版本中是否可以自动删除从未使用过的项目中的所有引用?

在您的回答中,请指明解决方案适用的VS版本。

16 个答案:

答案 0 :(得分:50)

如果您安装了Resharper(插件),则可以访问一项功能,该功能允许您通过解决方案资源管理器>分析使用过的引用。 (右键单击)参考文献>优化参考文献......

http://www.jetbrains.com/resharper/webhelp/Refactorings__Remove_Unused_References.html

此功能无法正确处理:

  • 依赖注入程序集
  • 动态加载的程序集(Assembly.LoadFile)
  • 通过互操作加载的本机代码程序集
  • ActiveX控件(COM互操作)
  • 加载程序集的其他创造性方法

enter image description here

答案 1 :(得分:27)

您可以尝试免费的VS2010扩展程序:Lardite group的Reference Assistant。它对我来说很完美。此工具有助于查找未使用的引用,并允许您选择应删除哪些引用。

答案 2 :(得分:27)

Resharper extension会为您执行此操作。

此扩展程序支持Visual Studio 2005到2017年。

虽然编译器不会包含未使用的程序集,但无关的使用语句和引用会降低Visual Studio和Intellisense的速度,因为工具必须考虑更多的代码。

答案 3 :(得分:21)

在Visual Basic项目中,支持删除“未使用的引用”(项目 - >引用 - >未使用的引用)。在C#中没有这样的功能。

在C#项目中执行此操作(没有其他工具)的唯一方法是删除可能未使用的程序集,编译项目并验证编译期间是否发生任何错误。如果没有发生错误,则删除未使用的程序集。 (See my post

如果您想知道哪个项目(程序集)依赖于其他程序集,您可以使用NDepend

答案 4 :(得分:17)

对于Visual Studio 2013/2015/2017,有一个扩展程序可以完全按照您的要求执行:ResolveUR。这基本上是做什么的:

  • 项目中删除了参考
  • 项目使用msbuild编译
  • 检查构建错误
  • 如果存在构建错误,则恢复已删除的引用。

答案 5 :(得分:16)

任何人来这里寻找 Visual Studio 2012

下载并安装Reference Assistant for Visual Studio 11

稍后你可以这样做:

enter image description here

答案 6 :(得分:13)

在Visual Studio 2013中,此扩展程序有效: ResolveUR

答案 7 :(得分:9)

有些人建议使用一个很棒的工具 - Reference Assistant for Visual Studio。问题是VS2012是最新支持的Visual Studio。但也有办法让它在VS2013中运行;)

以下是:

1)下载Lardite.RefAssistant.11.0.vsix

2)将扩展名更改为zip:Lardite.RefAssistant.11.0.vsix - > Lardite.RefAssistant.11.0.zip

3)解压缩并打开文本编辑器中的extension.vsixmanifest文件

4)查找InstallationTarget Version="[11.0,12.0)"的所有出现并将其替换为InstallationTarget Version="[11.0,12.0]"(请注意结束括号)

5)保存文件并压缩所有文件,使其位于根文件夹级别

6)将新zip的扩展名更改为vsix

7)安装并享受:)

我已经使用VS2013对其进行了测试,感谢source获得了教程

修改 添加到支持VS 2015社区版

<InstallationTarget Version="[14.0,15.0]" Id="Microsoft.VisualStudio.Community" />

括号的含义

[ – minimum version inclusive.

] – maximum version inclusive. 

( – minimum version exclusive. 

) – maximum version exclusive.

答案 8 :(得分:9)

使用Visual Studio版本2017和2015,您可以使用代码映射功能执行此操作,但此功能仅适用于企业版,而不是社区专业版本。

右键单击解决方案资源管理器中的项目节点,然后选择“在代码映射上显示”。这会将.dll显示为空白图表中的单个节点。右键单击代码映射中的该节点,然后选择“显示程序集此引用”。这将添加一个名为“Externals”的附加节点,可以将其展开以仅显示实际引用的程序集。

enter image description here

答案 9 :(得分:7)

您可以使用Visual Studio扩展程序库中的Reference Assistant extension

已使用并适用于Visual Studio 2010。

答案 10 :(得分:5)

你需要的只是石头和裸露的关节,然后你可以像穴居人那样做。

  1. 删除未使用的命名空间(对于每个类)
  2. 运行Debug build
  3. 将可执行文件和剩余命名空间引用复制到新位置
  4. 运行可执行文件
  5. 将发生缺少引用DLL错误
  6. 从Debug文件夹中复制所需的DLL
  7. 重复4-6
  8. 顾谷嘎嘎?
  9. 扔石头
  10. 您还可以依靠构建工具来告知您仍需要哪个引用。这是VS 2017的时代,穴居人仍然存活下来。

答案 11 :(得分:4)

[更新]此功能仅适用于 .Net 核心项目。

此功能很快就会出现在 Visual Studio 2019 中,并且已经在 Visual Studio 2019 v16.10 Preview 1 中提供。

此选项默认关闭,但您可以在菜单工具>选项>文本编辑器>C#>高级下启用它。在解决方案资源管理器(实验)中选择删除未使用的引用命令。启用该选项后,项目名称或依赖项节点的右键菜单中将出现“删除未使用的引用”命令。

Remove Unused References in Visual Studio 2019 v16.10 Preview 1

答案 12 :(得分:1)

使用DevExpress,我按照以下说明操作:

  1. 在VS中,转到DevExpress - 编辑器 - 代码清理。在“规则”下,选中“删除未使用的命名空间引用”&#39;。单击“确定”。
  2. 右键单击解决方案,然后选择&#39;代码清理&#39;。清理运行几分钟,然后结束。
  3. 构建您的应用程序

答案 13 :(得分:-2)

以下方法不依赖于任何“附加组件”,也不是很痛苦。

逐步浏览每个源文件,然后

  1. 全选(Ctrl-A)
  2. 切换轮廓扩展(Ctrl-M,M)。这样会将文件减少到两行。
  3. 单击名称空间的“ +”。这会将文件的每个类显示为一行。扫描每个类的引用计数,以查找未引用的类。
  4. 单击每个类的“ +”。这会将每个类函数显示为一行。扫描每个函数的引用计数,查找未引用的函数。

扫描每个文件以查找“ 0参考”仅需一秒钟。

扫描整个项目仅需几分钟。

答案 14 :(得分:-9)

在VB2008中,它以这种方式工作:

Project>Add References

然后单击“最近”选项卡,您可以在其中查看最近使用的参考列表。找到你不想要的那个并删除它。然后你关闭而不添加任何东西。

答案 15 :(得分:-12)

删除Visual C中的引用# 在解决方案资源管理器中,打开项目节点下的“引用”节点。 右键单击引用,然后单击“删除”。