Moin zusammen,
ich hoffe mal, dass ich hier im richtigen Forum bin, da ich hier schon so einiges zu der SharpZipLib gelesen habe.
Für ein Projekt brauche ich die möglichkeit Zip-Dateien als selsbtextrahierde EXE erzeugen zu können.
Nur, ich kann nicht wirklich etwas dazu finden.
Ich wäre für ein paar Tips u. Anregungen, ob das überhaupt mit C# realsierbar ist dankbar. Andernfalls müßte ich auf ein externes Programm zurückgreifen ... und das reizt mich ja nun gar nicht 😉
Packen und Entpacken habe ich bereits mit der SharpZipLib zur Zufriedenheit realisieren können.
Vielen Dank erstmal
Schöne Grüße
Hagen
Du musst das gezippte Paket als Resource in dein Programm bauen und dann zur laufzeit entpacken, altnerativ das Paket einfach ans Ende des Assemblies hängen und dann von dort aus mit dem FileStream rauslesen und entpacken (k.A. ob das wirklich geht).
Hallo,
soweit ich das verstanden habe, will er nicht ein Zip entpacken, sondern eher eines zu erstellen.
Offers zip file splitting and spanning, self-extracting files, in-memory read/write, and Deflate64™. Streaming Compression for .NET is a powerful pass-through stream that can be wrapped around .NET streams.
Also würde ich sagen, können tut es das, nur wie 🙂 eventuell mal durch die Doku / Homepage der Entwickler wühlen.
lg Lion
lg Lion
Für ein Projekt brauche ich die möglichkeit Zip-Dateien als selsbtextrahierde EXE erzeugen zu können.
Achso, jetzt hab ichs 😉 Da sehe ich keine andere Möglichkeit als eine z.B. "Extractor.exe" zu bauen die jedes mal wenn ein selbstextrahierendes Archiv erstellt wir kopiert und "konterminiert" 😉 wird. Also ans Ende des Assemblies anhängen, dein Packprogramm muss halt wissen wo das Assembly zum entpacken aufhört und die Datei dann "aufbohren".
Alternativ mal schauen ob sich da was mit dem Compiler machen lässt:
http://www.codeproject.com/KB/cs/CSharpScript.aspx <- Compiler 😉
Danke für die Antworten!!
Also wenn ich das richtig verstanden habe, soll ich eine Extracting.ExE in C# erstellen. Da wirft sich mir die Frage auf, ob das so gut ist. Ist ein .Net-Framework nicht vorhanden, wird das dann ja auch nicht gehen, richtig?
Das ist nur mal so eine Überlegung in den blauen Dunst hinein.
Die Sache mit dem "konterminieren" hab ich nicht verstanden, dafür fehlt mir vielleicht auch etwas Wissen. Bitte um eine kleine "Aufklärung".
Danke
Ja das DotNet Framework wirst du wohl dafür brauchen, du willst ja schließlich auch die SharpZipLib einsetzen und die ist in C# geschrieben 😉
"Konterminieren" ging mir in dem Zeitpunkt als ich das geschrieben habe einfach so durch meinen kranken Kaffeevollgedröhnten Kopf.
Ich meinte das du eine Anwendung (meinetwegen auch in C/C++, Delphi, PHP 😉 etc.) erstellen musst die auch die komprimierten Daten enthält, das kannst du entweder realisieren indem du das Archiv als Ressource einbettest und dann wieder zu Laufzeit ausließt oder indem du diese .exe einfach vorhältst und jedes mal wenn ein neues selbst extrahierendes Archiv erstellt wird kopierst und das Archiv hinten an die .exe dranhängst.
Wenn du das Archiv als Ressource einbetten möchtest musst du für jedes selbst extrahierende Archiv die .exe die das Archiv beinhaltet und zur Laufzeit entpacken soll neu kompilieren (was mit dem dotnet compiler nicht sonderlich schwierig sein sollte).
Bei der anderen Variante hast du immer die selbe .exe die generische Funktionen zum finden und entpacken des angehängten Archivs zur Laufzeit beinhalten muss. So was könnte in etwas folgendermaßen realisiert werden:
Hier eine Saudreckerte implementierung