Wie Zum Speichern von Dateien In Einer EXE-Datei
Okay, also ich arbeite an der Programmierung meiner eigenen installer in C#, und was ich tun möchte, ist etwas entlang der Linien von " legen Sie die Dateien in der .exe, so kann ich tun
Datei.Kopieren(Datei, filedir);
Oder, falls dies nicht möglich ist, gibt es einen anderen Weg das zu tun, was ich bin versucht zu tun?
Um zu sehen, wenn ich könnte, eigentlich.
Die Leute sagen immer, Sie zu "Code-code-code, wenn Sie möchten, um eine Sprache zu lernen", bis Sie tatsächlich etwas code, dann sind Sie alle NICHT neu ERFINDEN TEH WHEEEEEEL
Es ist nichts falsch mit der Codierung zu lernen, aber beim schreiben von Produktionscode man sollte nicht das Rad neu erfinden.
Wenn Sie das Programm ein installer, es ist nicht das Rad neu erfinden, weil das Rad noch nicht erfunden worden. Alle Installateure sind nur Quadrate, die niemand erfunden hat, der perfekte installer noch.
segne dich für diesen Kommentar! Mein Nächster Favorit ist, wenn Sie gehen "Warum würden Sie das auch tun wollen?"
Die Leute sagen immer, Sie zu "Code-code-code, wenn Sie möchten, um eine Sprache zu lernen", bis Sie tatsächlich etwas code, dann sind Sie alle NICHT neu ERFINDEN TEH WHEEEEEEL
Es ist nichts falsch mit der Codierung zu lernen, aber beim schreiben von Produktionscode man sollte nicht das Rad neu erfinden.
Wenn Sie das Programm ein installer, es ist nicht das Rad neu erfinden, weil das Rad noch nicht erfunden worden. Alle Installateure sind nur Quadrate, die niemand erfunden hat, der perfekte installer noch.
segne dich für diesen Kommentar! Mein Nächster Favorit ist, wenn Sie gehen "Warum würden Sie das auch tun wollen?"
InformationsquelleAutor S3THST4 | 2009-02-08
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich würde nicht code meine eigenen installer, aber wenn Sie wirklich wollen, um Dateien einbetten in Ihre Versammlung, die Sie nutzen könnten, stark typisierte Ressourcen. Im Eigenschaften-dialog Ihr Projekt, öffnen Sie die "Ressourcen" - tab und fügen Sie Ihre Datei. Sie werden dann in der Lage, um die Datei mit:
Dann werden Sie in der Lage zu schreiben, die eingebettete Ressource auf Datenträger mit:
Was ist Los mit der c# - Projekt habe ich einen Link zu oben, komplett mit source-code? Ist das nicht das, was du suchst?
Aktualisiert, um zu zeigen, wie können Sie dann schreiben die Datei auf die Festplatte mit dem System.IO.Datei.WriteAllBytes
Danke, eine Menge, smiller.
Vielen Dank für diese, ich werde wahrscheinlich verwenden Sie diese für ein config-tool, mit dem Benutzer die Auswahl zwischen verschiedenen DLL-overrides. Auf diese Weise bin ich sicher, dass ich nicht brauchen, zu manipulieren, um externe Dateien in den app Ordner, die Benutzer möglicherweise mit Chaos oder zu löschen.
InformationsquelleAutor Shawn Miller
Ehrlich, ich würde vorschlagen, Sie NICHT erstellen Sie Ihre eigenen installer. Es gibt viele, viele Probleme mit dem erstellen von Installationsprogrammen. Selbst die großen installer Entscheidungsträger nicht Ihre eigenen Installationsprogramme nicht mehr, Sie erstellen Sie einfach benutzerdefinierte MSI-Pakete.
Verwenden Mirosoft Installer (MSI). Es ist die richtige Sache zu tun. Machen Sie Ihre eigenen benutzerdefinierten front-end für Sie, aber nicht reproduzieren, ist das schon sehr Komplex Rad vorhanden ist.
UPDATE: Wenn Sie gerade dabei zu lernen, dann würde ich scheuen, daran zu denken, als ein "installer". Sie könnten versucht sein, nehmen Sie Ihre "Forschung" und verwenden Sie es eines Tages, und ehrlich gesagt, das ist, wie wir am Ende mit so viele Probleme, wenn neue Versionen von Windows kommen. Die Menschen schaffen Ihre eigenen Räder mit Annahmen, sind nicht gültig.
Was Sie wirklich versuchen zu tun ist, als "Verpackung", und Sie haben wirklich zu eng vertraut mit der Ausführbaren PE-format, denn Sie sprechen über das ändern der Struktur der PE-abbild auf der Festplatte.
Können Sie simulieren, bis zu einem Punkt, mit dem setzen von Dateien in die Ressourcen, aber das ist nicht wirklich das, was die Installateure oder self-Extraktoren zu tun.
Hier ist ein link zu Self-Extractor tutorial, aber es ist nicht in C#.
Ich weiß nicht genug über die .NET PE-Anforderungen zu wissen, wenn Sie tun können diese in mit verwaltetem code ausführbar ist oder nicht.
UPDATE2: Das ist wohl eher was du suchst, es bettet-Dateien in die Ressource, aber wie gesagt, es ist nicht wirklich die Art und Weise professionelle Installateure oder self-Extraktoren es tun. Ich denke, es gibt verschiedene Einschränkungen auf, was Sie einbetten können als Ressourcen. Aber hier ist das wie ein Self-Extractor-Demo in C# geschrieben.
Der einzige Grund, warum ich war, war zu sehen, wenn ich könnte. Ich werde nicht versuchen, es zu machen, adv, oder, nichts, nur versuchen, um 1-form, wenn Sie auf Installieren klicken und er legt einfach die Dateien in ein Verzeichnis.
S3thst4, auf jeden Fall tun, die Forschung auf die verfügbaren Installateure, aber lassen Sie sich nicht die Neinsager um Sie beiseite zu legen, und die meisten verfügbaren Installateure lassen viel zu wünschen übrig vor allem MSI, es ist definitiv Raum für massive Verbesserung, Installateure sind kein Spaziergang im park, obwohl, bereit sein für die harte Arbeit.
InformationsquelleAutor Erik Funkenbusch
Ich vermute hier, aber wenn Sie versuchen, speichern von Ressourcen in Ihrer Anwendung vor der Kompilierung können Sie im Projekt-Explorer mit der rechten Maustaste auf eine Datei, die Sie hinzufügen möchten, wählte Eigenschaften, und ändern Sie den Typ auf "Eingebettete Ressource".
Können Sie dann den Zugriff auf die eingebetteten Ressourcen später über die Anleitung aus diesem KB:
http://support.microsoft.com/kb/319292
InformationsquelleAutor Ray Booysen
in Fall, dass Sie wollen einfach nur zum speichern von mehreren Dateien in einer einzigen Datei Speicherung (und extrahieren von Dateien aus es, zu interagieren, etc.) vielleicht wollen Sie auch heraus zu überprüfen NFileStorage, ein .net file storage. geschrieben in 100% .NET C# mit allen Quellen enthalten. Es kommt auch mit einem Kommandozeilen-interpreter, der es ermöglicht die Interaktion von der Befehlszeile aus.
InformationsquelleAutor