Ehrlich gesagt würde ich Ihnen empfehlen, KEIN eigenes Installationsprogramm zu erstellen. Es gibt viele, viele Probleme bei der Erstellung von Installationsprogrammen. Selbst die großen Hersteller von Installationsprogrammen erstellen keine eigenen Installationsprogramme mehr, sondern nur noch benutzerdefinierte MSI-Pakete.
Verwenden Sie Mirosoft Installer (MSI). Das ist der richtige Weg. Erstellen Sie Ihr eigenes benutzerdefiniertes Frontend dafür, aber erschaffen Sie nicht das bereits sehr komplexe Rad neu, das bereits existiert.
UPDATE: Wenn Sie dies nur zu Lernzwecken tun, würde ich mich davor scheuen, es als "Installationsprogramm" zu betrachten. Sie könnten versucht sein, Ihre "Forschung" zu übernehmen und sie eines Tages zu verwenden, und offen gesagt, so enden wir mit so vielen Problemen, wenn neue Versionen von Windows herauskommen. Die Leute schaffen sich ihre eigenen Räder mit Annahmen, die nicht zutreffend sind.
Was Sie wirklich vorhaben, nennt sich "Paketierung", und Sie müssen sich mit dem Executable PE-Format vertraut machen, denn es geht darum, die Struktur des PE-Images auf der Festplatte zu verändern.
Man kann es bis zu einem gewissen Grad simulieren, indem man Dateien in Ressourcen ablegt, aber das ist nicht wirklich das, was Installationsprogramme oder Selbstextraktoren tun.
Hier ist ein Link zu Selbstentferner Tutorium, aber es ist nicht in C#.
Ich weiß nicht genug über die Anforderungen der .NET PE, um zu wissen, ob Sie dies mit einer ausführbaren Datei mit verwaltetem Code tun können oder nicht.
UPDATE2: Das ist wahrscheinlich eher das, wonach Sie suchen, es bettet Dateien in die Ressource ein, aber wie gesagt, es ist nicht wirklich die Art und Weise, wie professionelle Installateure oder Selbstextraktoren es tun. Ich glaube, es gibt verschiedene Beschränkungen dafür, was man als Ressourcen einbetten kann. Aber hier ist der Link zu einer Selbst-Extrahierer Demo geschrieben in C#.
0 Stimmen
Nur aus Neugierde: Warum programmieren Sie Ihr eigenes Installationsprogramm?
39 Stimmen
Die Leute sagen immer: "Wenn du eine Sprache lernen willst, musst du sie kodieren", bis du tatsächlich etwas kodierst, und dann heißt es: DON'T REINVENT TEH WHEEEEEEL
1 Stimmen
Es ist nichts dagegen einzuwenden, Programmieren zu lernen, aber beim Schreiben von Produktionscode sollte man das Rad nicht neu erfinden.
1 Stimmen
Wenn man ein Installationsprogramm programmiert, erfindet man das Rad nicht neu, denn das "Rad" ist noch nicht erfunden worden. Alle Installateure sind nur Quadrate, niemand hat bisher den perfekten Installateur erfunden.
3 Stimmen
@Rayne, vielen Dank für diesen Kommentar! Mein nächster Favorit ist, wenn sie sagen: "Warum wollt ihr das überhaupt machen?"