【问题标题】:How to find all dependencies of a .NET project?如何查找 .NET 项目的所有依赖项?
【发布时间】:2010-09-16 21:09:48
【问题描述】:

基本上,我需要的是 Dependecy Walker 之类的东西,但它应该适用于 .NET 应用程序。哪里有这样的工具?

【问题讨论】:

    标签: .net dependencies


    【解决方案1】:

    Reflector - 以前来自 Lutz Roeder,现在来自 Red-Gate 软件。

    【讨论】:

      【解决方案2】:

      对于 .NET 4,请检查我们的 CheckAsm:http://www.amberfish.net/

      【讨论】:

      • 在依赖walker 无法帮助我之后(不显示目标库引用的任何.net 程序集),我搜索了一个特定的.net 依赖应用程序,这成功了。易于阅读,如果存在循环依赖,将发现并发出警报。
      • 按广告宣传。只显示托管依赖项(甚至可以自动显示托管应用程序的非托管依赖项吗?)免费版本只显示层次结构,而不是图表。 (请确保在免费版本安装期间点击拒绝,以避免获得附加产品。)
      • 我不知道这是否最近发生了变化,但未付费的安装程序会安装不需要的垃圾软件,例如“注册表清理器”和“搜索保护”,我会避免安装此程序!
      【解决方案3】:

      我更喜欢ILSpy。它是一个开源的 .NET 程序集浏览器和反编译器。是的,它显示了依赖关系。

      Reflector 的体面替代品不再免费。

      【讨论】:

        【解决方案4】:

        NDepend 是专门用于依赖管理和可视化的 .NET 工具。 该工具建议dependency graphdependency matrix。该工具的免费试用版可通过here 获得。以下是依赖关系图和依赖矩阵的 2 个屏幕截图:

        【讨论】:

          【解决方案5】:

          在运行时Systernals'ProcessExplorer 可能有助于查看程序集依赖项。

          NDepend 还可以向您展示依赖关系以及您的组件耦合的紧密程度。

          【讨论】:

            【解决方案6】:

            Reflector 不是免费的,另一个也不是免费的,只是试用。我遇到了同样的问题,发现了这个优秀的工具:

            http://www.codeproject.com/Articles/246858/Depends4Net-Part-1

            【讨论】:

              【解决方案7】:

              ildasm.exe 也适用于此目的。

              此工具随 Visual Studio 自动安装。要运行该工具,请使用开发人员命令提示符(或 Windows 7 中的 Visual Studio 命令提示符)。

              ildasm.exe 在加载程序集时列出命名空间、类型、方法等的树。

              您可以通过双击MANIFEST并搜索以.assembly extern开头的行来查看程序集的所有依赖项。

              ildasm.exe 附带 Visual Studio 或 .NET SDK 安装,因此您很可能已经在您的计算机上安装了它。

              【讨论】:

                【解决方案8】:

                Dependency Walker 也可以与 .Net 一起使用。

                .Net 层仍然需要调用 深入到核心 Windows 功能 像 LoadLibrary 和 GetProcAddress 到 做实际的工作。正是在这个 Dependency Walker 的核心级别 了解正在发生的事情。所以, 而 Dependency Walker 可能不会 了解所有特定语言 您的应用程序的复杂性,它 仍将能够跟踪所有模块 核心 Windows API 级别的活动。

                Reference

                【讨论】:

                • 我认为这是不正确的。它会检测到本机程序集的依赖关系,是的,但它不会检测/查看对 .NET 程序集的依赖关系。例如,它将显示对 kernel32.dll 的依赖关系,但不会显示对 System.ServiceModel.dll 的依赖关系。你能详细说明一下吗?
                猜你喜欢
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2016-11-26
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多