我剛剛下載UnRAR.dll從http://www.rarlab.com/rar_add.htm包包括C#示例項目時,我在VS 2010中選擇.rar文件的摘錄,我得到以下運行後錯誤信息無法加載DLL「UNRAR.DLL」:指定的模塊找不到
,當我添加引用unrar.dll我得到以下錯誤
請幫/指向我,我缺少的是什麼?
我剛剛下載UnRAR.dll從http://www.rarlab.com/rar_add.htm包包括C#示例項目時,我在VS 2010中選擇.rar文件的摘錄,我得到以下運行後錯誤信息無法加載DLL「UNRAR.DLL」:指定的模塊找不到
,當我添加引用unrar.dll我得到以下錯誤
請幫/指向我,我缺少的是什麼?
UnRAR.dll不是.NET組件,因此它不能被用作一個項目引用。
這是一個原生的DLL,所以你必須使用P/Invoke來訪問它的方法或寫它周圍的C++/CLI包裝。
有在this MSDN forum thread一些示例代碼,應該提供一個體面的起點和顯示必要的方法。
Blue Mirror CD/DVD Indexer項目中似乎還包含一個相當完整的wrapper。
還應該指出,SevenZipSharp包括支持這個開箱即用。我自己並沒有使用它,但可能值得一試。
你正在談論使用
[DllImport("unrar.dll")]
訪問庫中的函數的樣本。測試項目運行時
這個DLL文件應該是可見的。
因此,您應該將其複製到BIN \ DEBUG文件夾或您項目運行的 文件夾中。
我剛剛複製.dll,但如果我編譯並從BIN \ DEBUG運行.exe其工作正常,但如果我調試其拋出錯誤「嘗試運行項目時出錯不能加載文件或程序集'unrar'或其依賴項之一。該模塊應包含一個安全的清單」...如果我從BIN中刪除.dll \調試在d中運行的項目ebug模式拋出同樣的錯誤,因爲我附上圖片 – alhashmiya 2012-03-12 22:19:04
我不確定,但我剛剛在我的電腦上試過,因爲「unrar.dll」是一個32位項目,所以出現了問題。該項目的默認值是AnyCPU,我的操作系統是Win64bit。所以該DLL不會被加載BadImageFormatException。更改爲x86配置,一切正常。 – Steve 2012-03-12 22:28:57
好的,先生,謝謝你的幫助,我會檢查我的安裝 – alhashmiya 2012-03-12 22:53:39
您可能想考慮解釋他如何將DLL導入到他的項目中。 – evasilchenko 2012-03-12 21:10:33
@DeviantSeev - 添加了其他人用來訪問UnRAR.dll的一些代碼的鏈接。 – 2012-03-12 21:13:55
@ M.Babcock謝謝我檢查了提到的鏈接同樣的包裝包含在同一作者的示例項目中,但是由Mr.Steve提到的「unrar.dll」應該在BIN \ DEBUG文件夾中,我只是複製了.dll,但如果我編譯並從BIN \ DEBUG運行.exe其工作正常,但如果我調試它的拋出錯誤「嘗試運行項目時出錯不能加載文件或程序集'unrar'或其依賴項之一。該模塊應包含一個安全的清單」 ...如果我從BIN \ DEBUG刪除.dll項目在調試模式下運行拋出相同的錯誤,因爲我附上圖片 – alhashmiya 2012-03-12 22:18:14