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

Kro*_*oaX 243 visual-studio

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

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

Ern*_*est 53

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

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

此功能无法正确处理:

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

在此输入图像描述


小智 28

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

  • 不使用MVC项目.它将基本DLL删除为.Helpers和.WebPage (3认同)
  • @Amit扩展程序现在有[VS2012的工作版](http://visualstudiogallery.msdn.microsoft.com/ff717422-f6a7-4f18-b972-f7540eaf371e) (3认同)
  • 和VS2019? (2认同)

Mat*_*son 27

ReSharper的扩展会为你做到这一点.

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

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

  • 那个人已经在项目中找到了很多未使用的引用 - 但是其中一堆实际上正在使用...所以我不相信Resharper的参考资料 (12认同)
  • 当有许多引用最终导致VS崩溃时,Resharper在大型项目中消耗大量内存 (5认同)
  • Pete,任何自动化工具都有可能过度使用.特别是在DI和PCL依赖的时代,可能需要看起来是不相关的,但这几乎不是该工具的错误.您应该使用版本控制软件,而不是做截图.像Git或Hg这样的现代系统可以让您经常在本地办理登机手续,这样您就不会失去工作. (4认同)
  • @eraj VS Express版本不支持扩展,获得支持ReSharper等扩展的免费社区版. (2认同)
  • 据我所知告诉Resharper显示未使用的命名空间,而不是汇编引用,这就是我认为"未使用的项目引用"的含义.我也想找到后者 (2认同)
  • @SonicSoul请参阅:删除未使用的引用:https://www.jetbrains.com/help/resharper/2016.2/Refactorings__Remove_Unused_References.html和优化引用:https://www.jetbrains.com/help/resharper/2016.2/Navigation_and_Search__Finding_Usages__Optimizing_References.html (2认同)

Jeh*_*hof 21

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

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

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

  • @JohnB:当然你是对的,但他的问题是关于引用(对程序集)而不是使用(名称空间). (11认同)
  • 在VS 2008/2010中,有一个右键单击菜单选项可以删除或删除和排序使用. (2认同)

Cla*_*tin 20

对于Visual Studio 2013/2015/2017,有一个扩展可以完全满足您的需求:ResolveUR.这主要是做什么的:

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

  • 来自52条评论的2.5个满分5星的Visual Studio Marketplace让我有所帮助 (5认同)

Hab*_*bib 16

对于任何来这里寻找Visual Studio 2012的人:

下载并安装Visual Studio 11的参考助手

以后你可以这样做:

在此输入图像描述

  • VS2019中也不存在 (3认同)

Ear*_*ark 15

您所需要的只是石头和裸露的指关节,然后您就可以像穴居人一样来做。

  1. 删除未使用的名称空间(针对每个类)
  2. 运行调试版本
  3. 将可执行文件和其余名称空间引用复制到新位置
  4. 运行可执行文件
  5. 缺少参考DLL错误将发生
  6. 从Debug文件夹复制所需的DLL
  7. 重复4-6
  8. 姑姑嘎嘎?
  9. 扔石头

您还可以依靠构建工具来告知仍需要哪个参考。这是VS 2017的时代,穴居人仍然幸存。

  • 哈哈,好吧,这里有点幽默没有错。斯通曼的方法确实如此,看起来没有花费企业版就是我们现在所拥有的。 (3认同)

小智 14

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

  • @abarisone你的通用"不要使用链接作为答案"回复真的应该只在你真正了解答案后使用.该链接是唯一与此答案相关的内容.它是VS插件的链接,因此没有其他任何相关内容. (15认同)
  • 虽然此链接可能会回答这个问题,但最好在此处包含答案的基本部分并提供参考链接.如果链接的页面发生更改,则仅链接的答案可能会无效 (4认同)

Gle*_*den 13

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

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

在此输入图像描述

  • 如果您有企业版并且在上下文菜单中没有看到此选项,则需要从 VS 安装程序的“单个组件”面板下安装“代码映射”功能。 (2认同)

Vla*_*adL 12

有些人建议使用一个很棒的工具 - Visual Studio的Reference Assistant.问题是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)保存文件并压缩所有文件,使它们位于根zip级别

6)将新的扩展名更改zipvsix

7)安装并享受:)

我已经用VS2013测试了它,感谢教程的源代码

编辑 添加以支持VS 2015社区版

<InstallationTarget Version="[14.0,15.0]" Id="Microsoft.VisualStudio.Community" />
Run Code Online (Sandbox Code Playgroud)

括号的含义

[ – minimum version inclusive.

] – maximum version inclusive. 

( – minimum version exclusive. 

) – maximum version exclusive.
Run Code Online (Sandbox Code Playgroud)

  • 不,是的.我在开玩笑.只是对那些把")"而不是"..."的家伙说出来,让我们都按照你的指示行事.:)不错的工作,只是做了你说的,一切都很好!你刚刚为我挣扎了一天.(y)的 (2认同)

eka*_*808 7

您可以使用Visual Studio扩展库中的Reference Assistant扩展.

使用并适用于Visual Studio 2010.

  • 您需要小心Web项目.它报告用作"未使用"的DLL. (2认同)

Dip*_*hah 5

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

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

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

删除 Visual Studio 2019 v16.10 Preview 1 中未使用的引用

  • 你是对的,这个功能似乎只适用于.Net core项目。那就可惜了!留下评论,以免以后误导大家。 (6认同)