.net - 删除未使用的引用(!= "using")

标签 .net visual-studio reference

如何查找并删除项目中未使用的引用?

我知道您可以轻松删除 vs 2008 中的 using 语句,但这不会删除项目中的实际引用。引用的 dll 仍将复制到您的 bin/setup 包中。

最佳答案

*注:参见http://www.jetbrains.net/devnet/message/5244658获取此答案的另一个版本。

通读帖子,似乎对最初的问题有些困惑。让我来尝试一下。

原来的帖子实际上是在问一个问题:“如何识别和删除一个 Visual Studio 项目对其他未使用的项目/程序集的引用?”发布者希望程序集不再作为构建输出的一部分出现。

在这种情况下,ReSharper 可以帮助您识别它们,但您必须自己删除它们。

为此,请在解决方案浏览器中打开“引用”,右键单击每个引用的程序集,然后选择“查找相关代码”。请参阅:

http://www.jetbrains.com/resharper/features/navigation_search.html#Find_ReferencedDependent_Code

您将得到:

  1. 浏览器窗口中该引用的依赖项列表,或者

  2. 一个对话框告诉您“未找到依赖于模块 XXXXXXX 的代码。”。

如果得到第二个结果,则可以右键单击引用,选择“删除”,然后将其从项目中删除。

虽然您必须“手动”执行此操作,即一次一个引用,但它会完成工作。如果有人以某种方式实现了自动化,我有兴趣听听它是如何完成的。

您几乎可以忽略 .Net Framework 中的那些,因为它们通常不会复制到您的构建输出(通常 - 尽管对于 Silverlight 应用程序来说不一定如此)。

一些帖子似乎在回答这个问题:“如何从源代码文件中删除不需要解析该文件中任何引用的 using 子句 (C#)”。

在这种情况下,ReSharper 在几个方面提供了帮助:

  1. 在动态错误检测期间为您标识未使用的 using 子句。它们显示为代码检查警告 - 代码将在文件中显示为灰色(默认),ReSharper 将提供删除它的提示:

    http://www.jetbrains.com/resharper/features/code_analysis.html#On-the-fly_Error_Detection

  2. 允许您在代码清理过程中自动删除它们:

    http://www.jetbrains.com/resharper/features/code_formatting.html#Optimizing_Namespace_Import_Directives

最后,认识到 ReSharper 对您的解决方案进行静态代码分析。因此,如果您对程序集有动态引用 - 例如通过反射或在运行时动态加载并通过接口(interface)访问的程序集 - 它不会拾取它。理解您的代码是无可替代的当您处理项目时的基础和项目依赖项。我确实发现 ReSharper 功能非常有用。

关于.net - 删除未使用的引用(!= "using"),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/81597/

相关文章:

c++ - C++ 引用参数可以与参数同名吗?

c++ - 无锁pop()中使用引用参数返回值的缺点

c# - 对实现 IEnumerator 的类进行序列化

c# - WPF:如何与非事件窗口交互?

angular - ng cli更新到版本10后,VS 2019没有智能感知和验证

c# - WCF 服务库仅在从 Visual Studio 运行时有效

c++ - 为什么按引用传递参数在 C++ 中的工作方式是这样的?

c# - 我可以将 C# 变量管理到 .js 中吗?

c# - 反序列化包含无效数据类型的 xml

visual-studio - VS2010 和 Windows XP SP3