使用SevenZipSharp出現“Can not load 7-zip library or internal COM error! Message: DLL file does not exist.”的解決方案


如果你是從nuget上下載安裝的SevenZipSharp庫,當你寫好相應代碼,興沖沖的啟動程序進行測試時,以下畫面會讓你受到當頭一棒:

image

究其原因,是因為SevenZipSharp只是native 7z庫的C# Wrap,所以你要讓程序能夠正常運行,還需要有7z的運行時庫(但詭異的是SevenZipSharp既沒有自己附帶,也沒有寫入依賴項)。

可以打開nuget,下載安裝7z或7z.Libs,設置7z.dll為始終拷貝。然后再次啟動程序。

如果依然出現這個錯誤,說明SevenZipSharp沒有能夠自動找到7z.dll,這時我們可以手動設置其路徑,如:

if (IntPtr.Size == 4)
{
    SevenZipCompressor.SetLibraryPath(@"7z-x86.dll");
}
else
{
    SevenZipCompressor.SetLibraryPath(@"7z-x64.dll");
}

解壓的設置同理。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM