Hallo,
das Thema ist leider viel komplizierter als man es haben möchte. Generell ist ein Setup leider oft mehr als nur ein paar Dateien irgendwo hin kopieren.
Da muss man eventuell..
- Vorrausetzungen überprüfen, (läuft mein Programm überhaupt auf der verwendeten Windows Version, ist das benötigte .NET Framework auch installiert...)
- Auf eventuelle Probleme reagieren (das benötigte .NET Framework herunterladen und installieren bevor man das eigene Programm installiert).
- Den (wie immer völlig überforderten user) ermöglichen einen Ort zu wählen wo das das Programm hinkopiert werden soll (Potentiell Optional)
- Dem (immernoch nicht Computer affineren User) ermöglichen das Programm zu starten (Startmenüeinträge, Desktop Verknüpfungen usw,)
- Dem User (sofern er weiß warum er soetwas tun sollte) ermöglichen das Programm auch wieder zu Deinstallieren.
- Eventuelle Dateiverknüpfungen im System registrieren
- Verhindern, dass das Programm 2x auf dem gleichen System installiert wird
- ...
Das mag sein, dass nur wenige dieser Punkte auf dein momentanes Projekt zutreffen, aber je umfangreicher diese Projekte werden, desto mehr solcher Aufgaben muss das Setup übernehmen. Daher würde ich
dringend abraten so etwas selbst programmieren zu wollen, dass ist ein Fass ohne Boden. Ein Projekt, dass das gemacht hat ist
Inno Setup vielleicht reicht es dir ja für den Anfang dieses zu verwenden.
State of the Art ist Inno Setup aber lange nicht mehr.
Microsoft hat mit MSI ein eigenes Setup Format geschaffen, welches alle Belange zu diesem Thema erschlagen soll (Spoiler: Es ist nicht gelungen).
Das von
Th69 Add-On fürs Visual Studio erzeugt MSI-Files. Leider ist es schon seit Jahren fehlerhaft uns wird scheinbar auch nicht mehr betreut. Wenn man in einem damit erzeugten Setup den Ziepfad auf ein anderes Laufwek ändert, also z.B. von "C:\Programme\MeinProgramm" auf "D:\Programme\MeinProgramm" wird alles stumpf in den Hauptverzeichnis des angegebenen Laufwerks kopiert (also in dem Beispiel nach "D:\").
Ein anders kostenlosen Tool um MSI Dateien zu erstellen wäre das
WiX-Toolset. Ich habe es mir vor Jahren einmal angesehen und fand es furchtbar kompliziert (wie naktes MSI übrigens auch). Eventuell kommst du aber besser damit klar.
Ich erwähnte, dass es Microsoft nicht gelungen ist, mit MSI wirklich alle Belange die an ein Setup gestellt werden, zu erfüllen. So ist es z.B. mit reinem MSI nicht möglich Prerequires anständig zu installieren, also z.B. das oben genannte Beispiel ein .NET Framework zu installieren, wenn dies für die Anwendung benötigt wird.
Deshalb gehen die gängigen Setup Lösungen heutzutage einen Mittelweg. Sie erzeugen ein MSI, um in der Microsoft Welt möglichst kompatibel zu sein, für alles was MSI nicht kann erzeugen sie eine EXE Datei (Bootstrap), die je nach Wunsch neben die MSI gelegt oder mit dieser verlinkt wird. Wenn man nun die Setup.exe startet, dann erledigt sie erst alles was MSI nicht kann und startet dann transparent das MSI, so das der user nicht merkt, dass er eigentlich mit 2 Programmen arbeitet.
Das von dir genannte
Insallshield macht das meines Wissens so und der mittlerweile ähnlich erfolgreiche
Advanced Installer ebenso.
Von letzteren gibt es auch eine
Freeware Edition, welche du
kostenlos verwenden darfst. Diese bietet nur sehr wenige Funktionen, aber für dein erstes Programm könnte es ausreichen.
Wenn deine Firma dann irgendwann größere Projekte vertreiben möchte, wird sie wahrscheinlich irgendwann ein paar tausend Euro in eine größere Version eines solchen Produktes stecken müssen.
Endkunden ist etwas komplizierteres als eine Setup Datei meist nicht zuzumuten (was ich auch Ok finde, es muss ja nicht jeder Informatiker sein und es ist unsere Aufgabe das ganze so einfach wie möglich für den user zu machen).