C#调用dll提示未能加载文件或程序集“xx.dll”或它的某一个依赖项。找不到指定的模块

qq_32690863 2019-07-15 10:32:17
我调用的是通过C++托管生成的dll文件。这个dll文件中引用了外部的libxml2.lib这个库(自己下的)以及ws2_32.lib库(系统带的)。通过添加引用的方式将dll文件添加进C#项目,并且把libxml2.dll和C++生成的dll都手动复制到了C#项目的bin目录下,C#中调用的时候出现如图报错信息。看了网上其他帖子以及博客,提到是由于x86或者x64的原因,我libxml2的库是win32的,C++托管编译也是x86的,C#也是同样的,请问如何将libxml这个库添加进C#项目的依赖?它无法通过手动添加引用,会提示它不是一个可读取的COM组件。
...全文
1615 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
Fanks 2019-07-15
  • 打赏
  • 举报
回复
引用 6 楼 qq_32690863 的回复:
[quote=引用 3 楼 Fanks 的回复:]
如果i仅仅是为了让这个文件和dll一起存在,那直接添加包含在项目里就好了,并且把“复制到输出目录”选择成“始终复制”

我是想要在C#中添加依赖,报错信息是IOFileNotFoundException。libxml2.dll这个文件该如何添加进C#项目依赖中?[/quote]
你所说的添加依赖让人不明白是要做什么?而c#引用dll应该也只有两种方式,至于说IOFileNotFoundException是对dll本身报错还是dll依赖的lib没有找到,这个你把所有文件放在一起运行就知道了。
XBodhi. 2019-07-15
  • 打赏
  • 举报
回复
nuget 里 搜索 libxml2.dll 安装看看是否可行。
qq_32690863 2019-07-15
  • 打赏
  • 举报
回复
引用 3 楼 Fanks 的回复:
如果i仅仅是为了让这个文件和dll一起存在,那直接添加包含在项目里就好了,并且把“复制到输出目录”选择成“始终复制”
我是想要在C#中添加依赖,报错信息是IOFileNotFoundException。libxml2.dll这个文件该如何添加进C#项目依赖中?
qq_32690863 2019-07-15
  • 打赏
  • 举报
回复
引用 4 楼 XBodhi. 的回复:
将你导入 [DllImport("xxx.dll")] 相关的文件 全部复制到你程序的根目录中(生成好的目录)
我是右键项目->添加引用的方式添加的dll文件,我已经把生成的dll和libxml2.dll都手动添加到了根目录中,并且将libxml的bin添加到了环境变量,还把libxml.dll复制到了C盘的System32文件夹下。问题依然没有解决。
XBodhi. 2019-07-15
  • 打赏
  • 举报
回复
将你导入 [DllImport("xxx.dll")] 相关的文件 全部复制到你程序的根目录中(生成好的目录)
Fanks 2019-07-15
  • 打赏
  • 举报
回复
如果i仅仅是为了让这个文件和dll一起存在,那直接添加包含在项目里就好了,并且把“复制到输出目录”选择成“始终复制”
qq_32690863 2019-07-15
  • 打赏
  • 举报
回复
引用 1 楼 Fanks 的回复:
那说明不是com组件啊,要用dllimport的方式引用
我需要的是添加libxml2的依赖,dllimport的用法不是用来引用方法的嘛??
Fanks 2019-07-15
  • 打赏
  • 举报
回复
那说明不是com组件啊,要用dllimport的方式引用

110,525

社区成员

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

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

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