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

在你的回答中,请说明解决方案适用于VS的哪个版本。


当前回答

Resharper扩展将为你做这件事。

这个扩展支持Visual Studio 2005到2017。

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

其他回答

在VS2022(在撰写本文时预览)中,这是SDK风格项目(阅读:. net Core和更新版本)的开箱即用。

如果它可用,你可以在项目上下文菜单中找到它:

你可以选择如何处理每一个发现。

点击这里阅读更多信息。

提示:应用此功能后,检查项目是否正确编译和运行。例如,根据我的经验,它不会检查是否在运行时使用了依赖项。

在VB2008中,它是这样工作的:

Project>Add References

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

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

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

此功能不能正确处理:

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

Resharper扩展将为你做这件事。

这个扩展支持Visual Studio 2005到2017。

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

在Visual Basic项目中,支持删除“未使用的引用”(project ->References- >Unused References)。在c#中没有这样的函数。

在c#项目(没有其他工具)中做到这一点的唯一方法是删除可能未使用的程序集,编译项目并验证在编译过程中是否出现任何错误。如果没有发生错误,则您已移除未使用的程序集。(见我的帖子)

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