Zitat:
Du hast dir InnoSetup definitiv nicht angesehen!
In welchem Film bin ich denn jetzt? Dann behaupte ich jetzt mal, du hast definitiv keine Ahnung von dem was du schreibst.
Zitat:
Wenn du eine besonders komplizierte Aufgabe während des Setups zu erledigen hast dann implementiere diese einfach selbst in einer
DLL und rufe sie aus dem Setupskript heraus auf!
Das geht schon mal überhaupt nicht, weil der Installer und Uninstaller eine SingleFileExe ist. Und diese SingleFileExe nicht nur bei mir, sondern auch bei meinen Kunden erzeugt werden muss.
Aber, um dich mal aufzuklären, damit du siehst wie gut deine Ratschläge zwar gemeint sind, wie wenig sie aber nützen, die komplette Aufgabenstellung, die wie schon mehrfach gesagt, mit Inno und auch mit einem anderen Installer nicht mit vertretbarem Aufwand machbar ist.
Es geht darum, (m)eine komplette Anwendung von einem Rechner auf einen anderen "umzuziehen", also mit allem was vorhanden ist:
- Client-Server Datenbank. Muss deinstalliert und auf dem neuen System mit "teilweise" (also nicht mit allen) Einstellungen neu installiert werden.
- Alle Datenbanken des Kunden. Das sind Stamm- und Bewegungsdaten in unterschiedlichen Datenbanken von mehreren Mandanten
- Zumindest die letzte (Programm-)Datensicherung meiner integrierten Backup-Funktion.
- Die individuellen Registry-Einstellungen aller User
- Teilweise die Benutzerdaten
und natürlich meine Anwendung selbst. Das sind insgesamt 16 Programm-Module die teilweise individuell installierbar sind. Also nicht jede Installation beinhaltet die selben Module. Es müssen aber in die Installation alle Module aufgenommen werden. Das mach ich schon jahrelang (also auch mit meinem "alten" Installer den ich ebenfalls selber programmiert hab) in der Form, dass ich die Programmdateien in einer Datenbank speichere, die beim Kunden auf dem Server auch gleichzeitig als Update-Datenbank für die Netzwerk-Clients fungiert.
Der Installer muss also als Datenbank-Client fungieren, um überhaupt Programmdateien und Bewegungsdaten in den unterschiedlichen Datenbanken erfassen zu können. Das würde zwar notfalls noch mit einer
DLL-Erweiterung gehen, scheidet aber wg. Single-Exe aus, und wegen Problemen beim Ausführen des Datenbank-Clients in einer
Dll.
Die Grundanforderung ist, es muss sehr einfach gehen. Geht es auch: Mit nur 4 Mausklicks haben meine Kunden das Setup erstellt.
Der Installer muss beim Rechnerwechsel De-Installieren können (mit der Option es rückgangig machen zu können, darum auch der Papierkorb) und natürlich wieder Installieren. Also alles was ein Standard-Installer können muss, und zusätzlich eben die Benutzerdaten zusammen tragen. Es ist demzufolge naheliegend, diesen Umzug-Installer auch für die generelle Distribution der Software zu verwenden, weil dann nur mehr eine einzige Codebase verwaltet werden muss. Das spart eine Menge Zeit und verhindert Probleme mit unterschiedlichen Programmversionen.
Die Alternative wäre auf dem Kunden-Rechner ein Installations-Script zu generieren, mit welchem ein Installer (wie z.B. Inno) dann abgefeuert wird. Ich hab einen Kumpel (Programmierer-Kollege der sich mit Inno gut auskennt, weil er schon Jahre lang seine Anwendung damit installiert) gebeten, das mal mit Inno zu probieren. Er hat von vorneherein abgelehnt, weil die Erweiterungen die programmiert werden müssten so umfangreich sind, dass es schneller geht das Ganze gleich von vorneherein selber zu programmieren. Mit dem zusätzlichen Vorteil, dass nicht ZWEI verschiedene Codebases (Install-Scripts) gepflegt werden müssten, die zudem noch bei jedem Programm-Update angepasst werden müssten. Falls das mal beim Kunden vergessen wird, nicht funktioniert, oder was auch immer noch alles auftreten kann, sind Probleme schon vorprogrammiert. Das ist ein absolutes NoGo, denn es geht um die Daten meiner Kunden.
So das war's. Heute nacht hab ich übrigens auch mein Problem gelöst.