引用dll出现的问题

那里有颗树 2018-09-03 01:56:47
现有一个c++的dll,通过添加引用进来,原来的别人的工程没问题 ,但新建工程报错:

具体错误信息如下:
=== 预绑定状态信息 ===
日志: DisplayName = odm.player.net, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
(Fully-specified)
日志: Appbase = file:///C:/Users/Administrator/Desktop/Test/dllTest/dllTest/bin/Release/
日志: 初始 PrivatePath = NULL
调用程序集: dllTest, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null。
===
日志: 此绑定从 default 加载上下文开始。
日志: 正在使用应用程序配置文件: C:\Users\Administrator\Desktop\Test\dllTest\dllTest\bin\Release\dllTest.vshost.exe.Config
日志: 使用主机配置文件:
日志: 使用 C:\Windows\Microsoft.NET\Framework64\v4.0.30319\config\machine.config 的计算机配置文件。
日志: 此时没有为引用应用策略(私有、自定义、分部或基于位置的程序集绑定)。
日志: 尝试下载新的 URL file:///C:/Users/Administrator/Desktop/Test/dllTest/dllTest/bin/Release/odm.player.net.DLL。
错误: 未能完成程序集的安装(hr = 0x8007000b)。探测终止。

看了下目录下有该dll,把工程由活动改为x86也不行,请大神帮忙看下
...全文
899 16 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
十八道胡同 2018-09-05
  • 打赏
  • 举报
回复
1)Depends 看过了?该dll所依赖的所有的dll都有吗?
2) 这个dll是否在你的exe旁边?
joseph870521 2018-09-05
  • 打赏
  • 举报
回复
这个问题我试过,其实就是系统的环境变量的问题,,你百度一下设置环境变量,为你引用DLL的目录.就可以了~给我分哈..哈哈
极客诗人 2018-09-05
  • 打赏
  • 举报
回复
一般我都是丢在bin文件夹里面引用 也有可能是这个dll还有其他依赖项。。
stevenjin 2018-09-04
  • 打赏
  • 举报
回复
保险的办法就是新建文件夹,把DLL放入,再引用肯定不会出错
xian_wwq 2018-09-04
  • 打赏
  • 举报
回复
1。odm.player.net.dll存在,可能是缺少依赖项
使用Depends来查看

2。如果本机没有安装vc++的开发环境,
可以安装对应版本的VC_redist试试

lindexi_gd 2018-09-04
  • 打赏
  • 举报
回复
[C# 如何在项目引用x86 x64的非托管代码](https://lindexi.gitee.io/post/C-%E5%A6%82%E4%BD%95%E5%9C%A8%E9%A1%B9%E7%9B%AE%E5%BC%95%E7%94%A8x86-x64%E7%9A%84%E9%9D%9E%E6%89%98%E7%AE%A1%E4%BB%A3%E7%A0%81.html )
那里有颗树 2018-09-04
  • 打赏
  • 举报
回复
引用 6 楼 xian_wwq 的回复:
1。odm.player.net.dll存在,可能是缺少依赖项
使用Depends来查看

2。如果本机没有安装vc++的开发环境,
可以安装对应版本的VC_redist试试

Depends下了一个没法查看,用的dumpbin看了下依赖都有的,原来的exe调用他可以运行的,新建的就不行。。。
那里有颗树 2018-09-04
  • 打赏
  • 举报
回复
引用 8 楼 jayinIT 的回复:
A依赖B,你引用A报错, 会不会是因为你没有B导致的?

没查到缺少的,可以调用该dll的exe的环境,我都拷贝到新的目录下了,还是报错
  • 打赏
  • 举报
回复
A依赖B,你引用A报错, 会不会是因为你没有B导致的?
那里有颗树 2018-09-04
  • 打赏
  • 举报
回复
引用 5 楼 foren_whb 的回复:
为什么我的详细信息,跟你的不一样。。。。

不过无所谓了,
看消息提示,应该是这个dll本身依赖于某些类库,而那些类库可能是比较旧的或是什么原因,在你新建立的项目里,要么没有,要么版本不对,导致这个dll引用不正常,你好好查下详细信息,找到不匹配的依赖项吧


详细信息看了又看了一天没看出来。。
丰云 2018-09-03
  • 打赏
  • 举报
回复
为什么我的详细信息,跟你的不一样。。。。

不过无所谓了,
看消息提示,应该是这个dll本身依赖于某些类库,而那些类库可能是比较旧的或是什么原因,在你新建立的项目里,要么没有,要么版本不对,导致这个dll引用不正常,你好好查下详细信息,找到不匹配的依赖项吧
那里有颗树 2018-09-03
  • 打赏
  • 举报
回复
引用 2 楼 foren_whb 的回复:
查看详细信息里说了什么?

详细信息已经粘贴了

引用 1 楼 dugupiaoyun 的回复:
将dll拷贝到一个新目录,或者在工程下建立一个目录拷贝进去,然后再项目引用这个dll。


已经尝试过新建目录引用了
那里有颗树 2018-09-03
  • 打赏
  • 举报
回复
已经尝试过新建目录引用了,详细信息已经粘贴了
丰云 2018-09-03
  • 打赏
  • 举报
回复
查看详细信息里说了什么?
dugupiaoyun 2018-09-03
  • 打赏
  • 举报
回复
将dll拷贝到一个新目录,或者在工程下建立一个目录拷贝进去,然后再项目引用这个dll。

111,108

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧