2015-10-14 85 views
2

我試圖壓縮與解壓SevenZipSharp文件解壓,但我發現了以下錯誤:壓縮與SevenZipSharp

Can not load 7-zip library or internal COM error! Message: failed to load library.

我的代碼:

 string extractFrom = @"C:\Test\Test.7z"; 
     string extractTo = @"C:\Test2"; 

     string compressFrom = @"C:\Test2"; 
     string compressTo = @"C:\Test\Test2.7z"; 

     SevenZipBase.SetLibraryPath(@"C:\Program Files\7-Zip\7z.dll"); 

     SevenZipCompressor compressor = new SevenZipCompressor(); 
     compressor.CompressionMode = CompressionMode.Create; 
     compressor.TempFolderPath = Path.GetTempPath(); 
     compressor.ArchiveFormat = OutArchiveFormat.SevenZip; 
     compressor.CompressDirectory(compressFrom, compressTo);//Error 

     SevenZipExtractor extractor = new SevenZipExtractor(extractFrom); 
     extractor.ExtractArchive(extractTo);//Error 

的錯誤是:

 compressor.CompressDirectory(compressFrom, compressTo); 

,並在:

 extractor.ExtractArchive(extractTo); 

我該如何解決這個問題?

回答

0

最明顯的答案:該DLL不在給定的路徑。

但我假設你已經嘗試過,但如果你混合使用32位和64位應用程序,這也是一個已知問題。因此,如果您的應用程序運行32位並且7zip安裝爲x64,則會引發此錯誤。

另外看到這一點:A reference to .dll could not be added. Please make sure that the file is accessible, and that it is a valid assembly or COM component

+0

我tryed與32位和64位和兩個不工作。 – daniel59

+0

SevenZipSharp基本上只是一個COM對象的包裝 - 因爲該錯誤正在被拋出,所以我建議你從引用的SO問題 – Leon

+0

中讀入答案(和鏈接)我剛剛發現我的錯誤:我使用.Net 4.5.2,但是使用SevenZipSharp只是兼容.Net 4.0。 – daniel59