【问题标题】:Visual Studio 2008 / C# : How to find dead code in a project?Visual Studio 2008 / C#:如何在项目中查找死代码?
【发布时间】:2010-01-07 12:42:38
【问题描述】:

如何在 Visual Studio 2008 C# 项目中找到死代码? 比如未使用的类、未使用的变量或未使用的资源?

【问题讨论】:

    标签: c# visual-studio maintenance


    【解决方案1】:

    你可以试试FxCop,它集成在Visual Studio 2008中,名为Code Analysis。您只需右键单击项目文件并“运行代码分析”即可。

    FxCop 是一个应用程序,它分析托管代码程序集(针对 .NET Framework 公共语言运行时的代码)并报告有关程序集的信息,例如可能的设计、本地化、性能和安全改进。

    可以在项目属性的代码分析部分配置活动规则。例如,一些与手头案例相关的规则出现在使用规则和性能规则中:

    • CA1801:查看未使用的参数。
    • CA1811:避免未调用的私有代码。

    为了获得更大的灵活性,您还可以编写自己的自定义规则 (Tutorial on writing your own Code Analysis rule)。

    【讨论】:

    【解决方案2】:

    安装JetBrains ReSharper,它将为您突出显示未使用的代码。

    【讨论】:

    • 它会在文件中突出显示它,但不会在整个解决方案中找到死代码。这是我认为解决方案范围的分析可以提供的功能之一。
    • @Jamie Ide - 但我认为,如果您启用解决方案范围的分析,它允许您从警告导航到警告,甚至跨文件导航?
    【解决方案3】:

    一个非常有用的工具是NDepend 依赖分析工具。您可以将您的 Visual Studio 项目加载到其中,它将分析所有程序集、类型和方法的依赖关系。它为您提供了有关依赖项的大量信息,包括(但绝不限于!)根本不被任何东西使用的方法/类型。

    您可以以图形方式或在列表中查看依赖项,并且可以编写自己的自定义依赖项查询,例如:一个简单的 CQL 查询显示可能未使用的方法:

    SELECT 
      METHODS         // Get me a list of methods
    WHERE 
      MethodCa == 0   // Where their afferent coupling is zero, (afferent coupling being the number of other methods that call it)
    

    强烈推荐的工具。

    【讨论】:

      【解决方案4】:

      VS 中的 Shift + F12 可用于快速检查:)

      【讨论】:

        【解决方案5】:

        虽然我不建议对大型代码库使用此方法,但您可以手动执行一定量。

        如果您右键单击一个方法或类,然后选择“查找用法”,您将获得引用它的所有位置的输出。显然,如果不使用,这将是空的。

        为了进行持续清理,我会安装 ReSharper

        【讨论】:

        • 我手动做了一定的量。那是我提出这个问题的时候。
        猜你喜欢
        • 1970-01-01
        • 2011-06-02
        • 2011-11-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-06-19
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多