【问题标题】:Why is it not possible to remove unused references in C#为什么不能在 C# 中删除未使用的引用
【发布时间】:2011-02-18 10:03:56
【问题描述】:

Visual Studio 是否有任何理由无法删除 C# 和 C++ 项目中未使用的引用(对项目和程序集),而可以从 Visual Basic 项目中删除 (see here)?

我知道您可以使用 Resharper 等其他工具来完成此操作,我只是想知道是否有任何技术原因无法在 C# 和 C++ 项目中执行此操作?或者微软只是选择它以这样的方式工作。这似乎是一个非常有用的功能。

【问题讨论】:

    标签: c# .net c++ visual-studio-2010 reference


    【解决方案1】:

    请注意,编译器会自动从程序集中删除任何未使用的引用,因此在程序集元数据级别这是多余的。然后它就变成了一个 IDE/工具问题。会不会是不可能的?否(尽管显然它需要保留任何标记为复制本地的内容,以确保它被部署)。因此,我们或许可以假设,这只是一个“实施 vs 实用性的时间”(与其他可以做的更有用的事情相比)。

    如果你愿意,我相信你可以为它编写一个 IDE 扩展;p

    【讨论】:

    • 知道有用!我是那些坚持删除未使用的引用的“人”之一:)
    • 好点!我对此表示怀疑,但并不完全确定。但是,在我看来,它会影响 VS 中的依赖概述,并且确实会影响编译项目时构建的项目等等。
    【解决方案2】:

    我在 Microsoft Connect 上找到了 this 建议。听起来微软实际上认为这是一个好主意,但只是没有“时间”(阅读:优先级)来实施它。太糟糕了!

    【讨论】:

      【解决方案3】:

      此功能适用于 VB(通过“引用”属性页上的“未使用的引用”按钮)。但 CSharp 就是这种情况,例如,用户可以添加对程序集的引用以使其被复制到输出目录。他们可能通过反射使用程序集,而不是针对它进行编译——在这种情况下,VS 无法检测到“使用”了这样的程序集。所以设计这样的算法并不是100%成功的。但是 flag 是一个将程序集标记为“未使用”的选项(但是,用户仍然可以选择是否从引用列表中删除程序集)。

      删除未使用的命名空间可以为此做一些工作。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-10-12
        • 1970-01-01
        • 1970-01-01
        • 2014-04-10
        • 1970-01-01
        • 2010-10-11
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多