Zum Inhalt springen

C# Anwendung mit goßer Datei embedded


XspYroX

Empfohlene Beiträge

Hi.

Ich schreibe aktuell eine kleine Exe, die ein embedded Zip-File auf die Festplatte extrahieren soll.

Habe das einmal mit einer Zip gemacht, die ca. 200 MB groß ist.

Jetzt möchte/muss ich aber eine Zip-Datei einbinden, die 20 GB groß ist.

Und da streikt der Compiler mit "Für diesen Vorgang ist nicht genügend Speicher verfügbar.".

Habe jetzt etwas gegoogelt und angeblich soll es daran liegen, dass der RAM nicht ausreicht (habe ja "nur" 8GB Ram im Rechner).

Frage: Muss ich tatsächlich auf einem Rechner compilieren, der über 20 GB Ram hat?

Meinentwegen kann das Kompilieren auch lange dauern, hauptsache er tut es.

Ich arbeite mit Visual Studio 2013 auf einem Windows 8.1 System mit 64 Bit.

Gibt es vllt Optionen, die das Kompilieren auf die auslagerungsdatei auslagern oder sonst etwas?

Das muss ddoch in der heutigen Zeit möglich sein :/

Ansonsten, gibt es noch andere Möglichkeiten? Ich brauche das Zip-File eingebettet in der Exe-Datei :/

Freue mich über jeden Tipp :)

Viele Grüße

XspYroX

Link zu diesem Kommentar
Auf anderen Seiten teilen

Die mir bekannten SFX Komponenten (von 7zip, WinRar, etc.) nutzen einen Programmstub, welcher einfach vor die gepackten Daten kopiert wird und welcher sein Ende erkennt - die Daten werden also nicht als Resource eingepackt.

Versuch mal, ob Deine ZIP-Entpackmethode ungültige Daten am Anfang überspringt - wenn ja, sollte es reichen das ZIP hinter deine Exe zu kopieren (in etwa: copy /b my.exe + my.zip result.exe) und die entstandene Exe zu entpacken :)

Ob eine 20 GB große selbstextrahierende Datei aber die feine Art ist, wage ich zu bezweifeln..

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich möchte eine "one-click" und "one-file" lösung für mein Vorhaben (extrahieren einer zip-datei an einen bestimmten ort, wenn bestimmte voraussetzungen gegeben sind).

Würde es gerne ohne eine ausgelagerte zip-datei machen :/

Gibt's da irgend einen Weg?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Irgendwie schon... wollte es nur komplett selbst programmieren und nicht auf MSI-builder o.ä. zurückgreifen :)

Aber ich habe jetzt einen mittelguten Weg gefunden, den ich gerade Teste. Dabei wird aber dann zwangsweise die Zip-Datei ausgelagert...

Trotzdem komisch, dass es da beim Kompilieren probleme gibt. Auch wenn das nicht die feine Art ist, sollte sowas im Jahr 2014 doch schon irgendwie möglich sein.... Also ist jetzt mein Gedanek dazu ;)

Trotzdem danke :)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Aber ich habe jetzt einen mittelguten Weg gefunden, den ich gerade Teste. Dabei wird aber dann zwangsweise die Zip-Datei ausgelagert.
Das heißt, du hast die Prämisse des hier beschriebenen Problems mal eben über Bord geworfen.

Auch wenn das nicht die feine Art ist, sollte sowas im Jahr 2014 doch schon irgendwie möglich sein....
Ist es vermutlich auch. Aber anscheinend halten die, die so etwas umsetzen könnten, das nicht für notwendig. In etwa so wie 150 Meter lange Kettensägen.
Link zu diesem Kommentar
Auf anderen Seiten teilen

Das heißt, du hast die Prämisse des hier beschriebenen Problems mal eben über Bord geworfen.

Ist es vermutlich auch. Aber anscheinend halten die, die so etwas umsetzen könnten, das nicht für notwendig. In etwa so wie 150 Meter lange Kettensägen.

Die Prämisse MUSSTE ich über Bord werfen, da es anscheinend so einfach nicht machbar ist. Technisch nicht machbar. Da kann ich mich hinsetzen und weinen oder ich beiß in den sauren Apfel und muss nen anderen Weg nehmen :/

Naja, das Beispiel mit der Kettensäge trifft es nicht ganz.

Es ging mir ja um die Frage, ob es theoretisch überhaupt möglich ist.

Eine 150 meter lange Kettensäge ist theoretisch ja möglich ;)

Aber ok, Thema erledigt :)

Danek an alle Helfenden =)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Mit genügend Arbeitsspeicher ist deine tausend GB große Datei in deine Exe zu compilieren auch möglich...

Hab auch was davon gelesen, dass es vllt auch an dem Limit von 32 Bit liegt...

Habs jetzt nicht mit einer 4,1 GB großen Datei probiert...

Die Fehlermeldung kam auch fast sofort, insofern hat er vllt einfach die Größe der Zip-Ressource geprüft und gemerkt, dass die zu groß ist...

Und ich habe das Projekt schon auf 64-Bit kompilieren gestellt. Aber Visual Studio gibts wohl nur in 32-Bit und da könnte es dann haken :/

Egal, Solved somehow ;)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...