Laden...

SevenZipSharp Fehler: library is invalid

Erstellt von landy14 vor 10 Jahren Letzter Beitrag vor 10 Jahren 3.579 Views
L
landy14 Themenstarter:in
16 Beiträge seit 2013
vor 10 Jahren
SevenZipSharp Fehler: library is invalid

Hallo allerseits,

ich habe eine Frage zur Verwendung des SevenZipSharp Unpacker (http://sevenzipsharp.codeplex.com/).

Mein Code sieht folgendermaßen aus:

using SevenZip;
using System.IO;

......

if (openFileDialog1.ShowDialog() == DialogResult.OK)
            {
                SevenZipExtractor.SetLibraryPath(@"C:\Users\Andi-PC\Desktop\SevenZipSharp.dll");

                string rarFile = openFileDialog1.FileName;
                string destination = "Output";

                SevenZipExtractor extractor = new SevenZipExtractor(rarFile);

                if (!Directory.Exists(destination))
                    Directory.CreateDirectory(destination);

                extractor.ExtractArchive(destination);
                extractor.Dispose();
            }

Fehler (bei der Ausführung nach der Auswahl eines Beispiel RAR Archives):

Fehlermeldung:
Can not load 7-zip library or internal COM error! Message: library is invalid.

Hatte jemand dieses Problem schonmal ? Ein Verweis zur DLL ist vorhanden, er findet sie ja auch schließlich. Die DLL ist die normale von der oben angegebenen Seite.

Vielen Dank schonmal!

849 Beiträge seit 2006
vor 10 Jahren

Die Benamsung deiner variable lässt darauf schliessen das Du ein rar file liest. rar != 7zip

S
417 Beiträge seit 2008
vor 10 Jahren

Wenn ich das richtig verstanden habe, dann musst du in SetLibraryPath den Pfad zu der 7-zip dll angeben. Die SevenZipSharp dll musst du ja ohnehin schon referenziert haben, sonst würdest du die Typen (z.B. SevenZipExtractor) ja gar nicht kennen.

L
landy14 Themenstarter:in
16 Beiträge seit 2013
vor 10 Jahren

7z.dll : Message: failed to load library.
7-zip.dll : same

Normalerweise sollte damit auch rar funktionieren.

S
417 Beiträge seit 2008
vor 10 Jahren

Ja, RAR sollte schon funktionieren. Schonmal im Netz nach dem Fehler gesucht?
Das sieht ganz passend aus: How would i use Sevenzipsharp with this code?

L
landy14 Themenstarter:in
16 Beiträge seit 2013
vor 10 Jahren

Die DLL (7z.dll) findet er definitiv, da wenn er sie nicht findet eine andere Fehlermeldung kommt.
Der 2. Hinweis der Seite sagt ich bräuchte eine 64 bit Version, nach einigem Googlen konnte ich die aber nicht finden, sicher dass sie heute noch verwendet wird ?!

Ebenfalls hab ich mal probiert das Programm unter AnyCPU, x86 und x64 zu testen, ohne Erfolg.

S
417 Beiträge seit 2008
vor 10 Jahren

Hallo,

also bei mir funktioniert es einwandfrei:

var filename = @"F:\tmp\test.zip";
SevenZip.SevenZipCompressor.SetLibraryPath(@"C:\Program Files\7-Zip\7z.dll");
var extractor = new SevenZipExtractor(filename);
extractor.ExtractArchive(@"F:\tmp");
extractor.Dispose();

Ich habe 7-zip in der 64-bit version installiert und wenn ich in VS als Target auch 64-bit wähle, dann passt alles. Wenn ich allerdings AnyCpu wähle, bekomme ich die gleiche Meldung wie du.
Sprich: Stell sicher, dass deine platformen zusammen passen.

L
landy14 Themenstarter:in
16 Beiträge seit 2013
vor 10 Jahren

Danke!
Du hast mich darauf gebracht mal zu überprüfen, welches 7Zip ich installiert habe, und das war die 32 bit Version. Mit x64 Version + x64 beim Projekt klappt's.

Vielen Dank!