.net开发常见问题:如何确定程序集(即dll)依赖哪些程序集

        dll依赖问题在.net开发中屡见不鲜,特别是在调用c++的dll时更是如此。报错信息(包括对应的堆栈异常信息)一般无法得知具体是哪一个dll没能成功加载(纯.net的dll可以,但如果是c/c++的dll依赖于另一个c/c++的dll则没办法),具体表现为加载某个dll时,该dll无法加载或其依赖项无法加载。

        但我们可以通过命令行工具来查看出错dll的依赖项即可,如果列出的dll没有出现在当前目录下或者系统变量PATH路径,大概率可能就是没有找到这些依赖项目dll。

一般解决办法是确认一遍所有列出的dll是否都在当前运行目录下即可(可能需要递归查看依赖dll),

想办法补全即可。通常这种都是c++的dll依赖问题,有多数原因是sdk或某些软件包没有安装导致的,例如matlab相关的开发。

具体查看方法:

在vs开发人员命令提示符,执行以下命令即可:

dumpbin /dependents StrainToDisplacement.dll

对于我的情况,实际缺少的是libiomp5md.dll文件,安装回matlab运行时即可。

其他可用工具:

1. CFF Explorer如下图所示:

2. depends.exe(不好用,在我的电脑上一打开dll直接卡死)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值