无法加载DLL“UNRAR.DLL”:指定的模块找不到

问题描述:

我刚刚下载UnRAR.dll从http://www.rarlab.com/rar_add.htm包包括C#示例项目时,我在VS 2010中选择.rar文件的摘录,我得到以下运行后错误信息无法加载DLL“UNRAR.DLL”:指定的模块找不到

Unable to load 'UNRAR.DLL'

,当我添加引用unrar.dll我得到以下错误

unrar.dll could not be loaded

请帮/指向我,我缺少的是什么?

UnRAR.dll不是.NET组件,因此它不能被用作一个项目引用。

这是一个原生的DLL,所以你必须使用P/Invoke来访问它的方法或写它周围的C++/CLI包装。

有在this MSDN forum thread一些示例代码,应该提供一个体面的起点和显示必要的方法。

Blue Mirror CD/DVD Indexer项目中似乎还包含一个相当完整的wrapper


还应该指出,SevenZipSharp包括支持这个开箱即用。我自己并没有使用它,但可能值得一试。

+0

您可能想考虑解释他如何将DLL导入到他的项目中。 – evasilchenko 2012-03-12 21:10:33

+0

@DeviantSeev - 添加了其他人用来访问UnRAR.dll的一些代码的链接。 – 2012-03-12 21:13:55

+0

@ M.Babcock谢谢我检查了提到的链接同样的包装包含在同一作者的示例项目中,但是由Mr.Steve提到的“unrar.dll”应该在BIN \ DEBUG文件夹中,我只是复制了.dll,但如果我编译并从BIN \ DEBUG运行.exe其工作正常,但如果我调试它的抛出错误“尝试运行项目时出错不能加载文件或程序集'unrar'或其依赖项之一。该模块应包含一个安全的清单” ...如果我从BIN \ DEBUG删除.dll项目在调试模式下运行抛出相同的错误,因为我附上图片 – alhashmiya 2012-03-12 22:18:14

你正在谈论使用

[DllImport("unrar.dll")] 

访问库中的函数的样本。测试项目运行时

这个DLL文件应该是可见的。
因此,您应该将其复制到BIN \ DEBUG文件夹或您项目运行的 文件夹中。

+0

我刚刚复制.dll,但如果我编译并从BIN \ DEBUG运行.exe其工作正常,但如果我调试其抛出错误“尝试运行项目时出错不能加载文件或程序集'unrar'或其依赖项之一。该模块应包含一个安全的清单”...如果我从BIN中删除.dll \调试在d中运行的项目ebug模式抛出同样的错误,因为我附上图片 – alhashmiya 2012-03-12 22:19:04

+0

我不确定,但我刚刚在我的电脑上试过,因为“unrar.dll”是一个32位项目,所以出现了问题。该项目的默认值是AnyCPU,我的操作系统是Win64bit。所以该DLL不会被加载BadImageFormatException。更改为x86配置,一切正常。 – Steve 2012-03-12 22:28:57

+0

好的,先生,谢谢你的帮助,我会检查我的安装 – alhashmiya 2012-03-12 22:53:39