我如何确定一个项目的依赖关系.网络应用?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

.net相关问答推荐

无法在Designer、VS2022、. NET 8中打开WinForms表单'

.NET发布的应用程序运行与开发不同的端口

dotnet 8 web api在部署到docker后无法工作

有没有更好的方法使用 Pusher Channels 的批事件发布消息?

如何在 C# 中自动删除临时文件?

判断内部异常的最佳方法?

图像 UriSource 和数据绑定

Owin Twitter登录-根据验证程序远程证书无效

string.Format 如何处理空值?

将 DataRowCollection 转换为 IEnumerable

Environment.TickCount 与 DateTime.Now

使用 .NET 在 Windows 中创建弹出式 toastr 通知

如何授予所有用户对我的应用程序创建的文件的完全权限?

当程序员说针对接口而不是对象的代码时,他们是什么意思?

Double.TryParse 或 Convert.ToDouble - 哪个更快更安全?

形成两个列表并集的最简单方法

如何对 LINQ to XML 中的元素进行深层复制?

Find() 和 First() 抛出异常,如何改为返回 null?

自创建数据库以来,支持ApplicationDbContext上下文的模型已更改

如何在安装后立即启动 .NET Windows 服务?