使用Visual Studio版本2017和2015,您可以使用代码映射功能执行此操作,但此功能仅适用于 Enterprise Edition ,而不是 Community 或 Professional 版本 .
右键单击解决方案资源管理器中的项目节点,然后选择'Show on Code Map.'这将在空白图中将.dll显示为单个节点 . 在代码映射中右键单击该节点,然后选择"Show Assemblies This References."这将添加一个名为"Externals"的附加节点,该节点可以展开以仅显示实际引用的程序集 .
15 回答
在Visual C#中删除引用在“解决方案资源管理器”中,打开项目节点下的“引用”节点 . 右键单击引用,然后单击“删除” .
如果安装了Resharper(插件),则可以访问允许您通过 Solution Explorer > (right click) References > Optimize References... 分析已使用引用的功能
http://www.jetbrains.com/resharper/webhelp/Refactorings__Remove_Unused_References.html
此功能无法正确处理:
依赖注入程序集
动态加载的程序集(Assembly.LoadFile)
通过互操作加载的本机代码程序集
ActiveX控件(COM互操作)
加载装配的其他创造性方法
您可以尝试免费的VS2010扩展程序:Lardite group的Reference Assistant . 它对我来说很完美 . 此工具有助于查找未使用的引用,并允许选择应删除的引用 .
Resharper extension会为你做这件事 .
此扩展程序支持Visual Studio 2005到2017 .
虽然编译器不会包含未使用的程序集,但无关的使用语句和引用会降低Visual Studio和Intellisense的速度,因为工具必须考虑更多的代码 .
在Visual Basic项目中,支持删除“未使用的引用”(项目 - >引用 - >未使用的引用) . 在C#中没有这样的功能 .
在C#项目中执行此操作(没有其他工具)的唯一方法是删除可能未使用的程序集,编译项目并验证编译期间是否发生任何错误 . 如果没有错误发生,则删除了未使用的程序集 . (See my post)
如果您想知道哪个项目(程序集)依赖于其他程序集,您可以使用NDepend .
对于任何来这里寻找 Visual studio 2012 的人:
下载并安装Reference Assistant for Visual Studio 11
以后你可以这样做:
对于Visual Studio 2013/2015/2017,有一个扩展可以完全按照您的要求执行:ResolveUR . 这主要是做什么的:
项目中删除了
引用
项目是使用msbuild编译的
检查构建错误
如果存在构建错误,则
恢复已删除的引用 .
在Visual Studio 2013中,此扩展程序有效:ResolveUR
有人建议使用一个很棒的工具 - 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的教程
EDIT 添加以支持VS 2015社区版
Meaning of the brackets
您可以使用Visual Studio扩展库中的Reference Assistant extension .
已使用并适用于Visual Studio 2010 .
使用Visual Studio版本2017和2015,您可以使用代码映射功能执行此操作,但此功能仅适用于 Enterprise Edition ,而不是 Community 或 Professional 版本 .
右键单击解决方案资源管理器中的项目节点,然后选择'Show on Code Map.'这将在空白图中将.dll显示为单个节点 . 在代码映射中右键单击该节点,然后选择"Show Assemblies This References."这将添加一个名为"Externals"的附加节点,该节点可以展开以仅显示实际引用的程序集 .
你需要的只是石头和裸露的关节,然后你可以像穴居人一样做 .
删除未使用的命名空间(对于每个类)
运行Debug构建
将可执行文件和剩余的命名空间引用复制到新位置
运行可执行文件
将发生缺少参考DLL错误
从Debug文件夹中复制所需的DLL
重复4-6
顾谷嘎嘎?
扔石头
您还可以依靠构建工具来了解仍需要哪个引用 . 这是VS 2017的时代,穴居人仍然存活下来 .
使用DevExpress,我按照以下说明操作:
在VS中,转到DevExpress - 编辑器 - 代码清理 . 在“规则”下,选中'Remove unused namespace references' . 单击确定 .
右键单击解决方案,然后选择'Code Cleanup' . 清理运行几分钟,然后结束 .
构建您的应用程序
以下方法不依赖于任何“附加组件”,并且不是很痛苦 .
逐步浏览每个源文件和
全选(Ctrl-A)
切换轮廓扩展(Ctrl-M,M) . 这会将文件减少到两行 .
单击命名空间's ' '. This will show each of the file'的类作为一行 . 扫描每个类的引用计数,查找未引用的类 .
点击每个类' ' '. This will show each of the class functions as a single line. Scan each function'的引用计数,寻找未引用的功能 .
扫描每个文件寻找'0参考'只需要一秒钟 .
扫描整个项目只需几分钟 .
在VB2008中,它以这种方式工作:
然后单击“最近”选项卡,您可以在其中查看最近使用的参考列表 . 找到你不想要的那个并删除它 . 然后你关闭而不添加任何东西 .