Kirk1701A - Mo 06.11.17 15:57
Titel: Allgemein - Setup selber erstellen, geht das?
Hi Leute,
ich weiss, ich nerve, aber ich bin im ersten Azubi-Jahr und noch sehr unerfahren. Ich wollte für meinen vor kurzem fertig gestellten Sternzeitrechner ein Setup erstellen, aber ich will dieses InstallShield nicht runterladen (muss erst genehmigt werden; Dauer: 1 - 2 Wochen). Kann man ein Setup selber erstellen und wenn ja, wie?
Euer Kirk
P.S.
Danke für eure Geduld...
Moderiert von Th69: Vulgär-Ausdruck entfernt.Moderiert von Christian S.: Topic aus WPF / Silverlight verschoben am Mo 06.11.2017 um 16:02
jaenicke - Di 24.04.18 06:02
Palladin007 hat folgendes geschrieben : |
Solche Installer sind aus meiner Sicht ziemlich nutzlos bzw. unnötig. |
Es ist aber einfacher schnell ein Setup auszuführen, das alles Notwendige erledigt inkl. Verknüpfungen und Eintrag zum Deinstallieren usw. als wenn ich ein Archiv herunterladen muss, es manuell entpacken muss, an die richtige Stelle legen muss, die Verknüpfungen erstellen muss und dann noch einen Knoten ins Taschentuch machen muss, damit ich nicht vergesse, dass es an der Stelle liegt... (In der Liste der installierten Software fehlt es dann ja)
Bei einem .NET Tool sollte der Installer aber auch noch ggf. die korrekte .NET Version herunterladen und installieren, ansonsten würde auch schlicht ein Tool wie InnoSetup gehen, das du woanders installieren und das Verzeichnis schlicht kopieren kannst. Allerdings vermute ich, dass du auch das nicht unbedingt ohne Genehmigung darfst, oder?
Ein solches Tool ganz selbst zu erstellen würde ich nicht empfehlen. Denn das hält sich dann kaum an die Systemstandards und wäre daher nicht wirklich sinnvoll.
doublecross - Di 24.04.18 13:43
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 [
http://www.jrsoftware.org/isinfo.php] 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 [
http://wixtoolset.org]. 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 [
https://www.flexera.de/producer/products/software-installation/installshield-software-installer/] macht das meines Wissens so und der mittlerweile ähnlich erfolgreiche
Advanced Installer [
https://www.advancedinstaller.com/] ebenso.
Von letzteren gibt es auch eine
Freeware Edition [
https://www.advancedinstaller.com/top-freeware-features.html], welche du
kostenlos verwenden darfst [
https://www.advancedinstaller.com/licenses.html]. 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).