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

I судимый с 32-Bit и 64-Bit, и оба не работают. – daniel59

+0

SevenZipSharp в основном просто оболочка для COM-объекта - поскольку эта ошибка возникает, я предлагаю вам прочитать ответ (и ссылки) из упомянутого вопроса SO – Leon

+0

Я только что нашел свою ошибку: я использую .Net 4.5.2, но SevenZipSharp просто совместим с .Net 4.0. – daniel59

Смежные вопросы