我如何确定一个项目的依赖关系.网络应用?Dependency Walker个可用于托管应用程序吗?我已经下载了最新的应用程序,并try 分析该应用程序,但它只是在没有太多解释的情况下退出.如果它不适用于.NET,那么是否有其他工具可以帮助我调试运行时DLL加载问题?
我如何确定一个项目的依赖关系.网络应用?Dependency Walker个可用于托管应用程序吗?我已经下载了最新的应用程序,并try 分析该应用程序,但它只是在没有太多解释的情况下退出.如果它不适用于.NET,那么是否有其他工具可以帮助我调试运行时DLL加载问题?
依赖项遍历适用于普通的Win32二进制文件.所有的.NETDLL和EXE都有一个小的存根标头部分,这使它们看起来像普通的二进制文件,但它基本上只说"加载CLR"-所以这就是依赖项遍历程序会告诉你的全部.
看看哪些东西是你的.NET应用程序实际上依赖于,你可以使用红门的非常优秀的.NET reflector.(编辑:请注意,.NET Reflector现在是一款付费产品.ILSpy是免费的、开源的,非常类似.)
将您的DLL加载到其中,右键单击,然后 Select "分析"-然后您将看到一个"取决于"项,它将向您显示它需要的所有其他DLL(以及这些DLL中的方法).
但有时会变得更棘手,因为你的应用程序依赖于X dll,并且X dll存在,但无论出于何种原因,都无法在运行时加载或定位.
To troubleshoot those kinds of issues, Microsoft have an Assembly Binding Log Viewer which can show you what's going on at runtime