2015-10-14 73 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