Einzelnen Beitrag anzeigen

moelski

Registriert seit: 31. Jul 2004
1.110 Beiträge
 
Delphi 2010 Professional
 
#1

einfacher Installer / Updater - Idee & Meinungen?

  Alt 21. Apr 2009, 13:18
Moin !

Ich möchte hier nur mal eine Idee vorstellen und fragen was ihr davon haltet. Aber bitte nicht gleich mit Kommentaren wie "Gibts schon" "Warum neu erfinden" "..." bewerfen

Ok, also wir nutzen seit einige Zeit den AKInstallerMSI. An sich ja auch ne tolle Sache. Aber in Summe ist mir das MSI Konzept etwas starr und unsere eher einfach gestrickte Anwendung könnte man mitunter besser Installieren und mit Updates versorgen.
Drum also mal meine Idee die mir so vorschwebt. Ziel soll ein System sein, das einfach zu verwalten ist und wo man einem User schnell Updates zur Verfügung stellen kann.

Meine Idee basiert erstmal grundlegend auf der Bildung von MD5 Hashes. Aber dazu im Verlauf der Beschreibung mehr.

Paket erstellen:
Zunächst mal muss in einem Verzeichnis erstellt werden in dem alle Dateien / Ordner angelegt sind die auf dem Zielsystem erstellt werden sollen. Also alles das was in den Programmordner soll. (Da unsere Software in den Anwendungsdaten des Profils eigenständig benötigte Strukturen anlegt braucht der Installer (in unserem Fall) dies schon mal gar nicht können.)
Dazu muss dann noch eine sehr einfache XML Datei welche die möglichen Startmenü Einträge definiert und wo für jede Datei der MD5 Hash eingetragen ist.

Das ganze packen wir dann in eine ZIP Datei.

Das Verzeichnis wird ebenfalls 1:1 (also nicht als ein ZIP) auf einen Webserver gelegt.

Installation Datei
Für die Installation brauchts dann noch einen sehr einfach gestrickten Wizzard. Der muss nicht sonderlich viel können:
-> Verzeichnis abfragen
-> ggf. (Lizenz) Infos anzeigen
Der Installer nimmt die ZIP Datei und entpackt sie ins Programmverzeichnis. Danach erstellt er anhand der XML Datei die Menüeinträge. Zudem muss er einen Registryeintrag machen für den Uninstaller.
Additiv kann er dann auch die Anwendung starten.

Installation Web
In diesem Fall kommt der Installer ohne die ZIP Datei daher. Da die Software noch nicht installiert ist, läd er das Verzechnis vom Webserver und erstellt es 1:1 im Programmordner. Über die XML Datei weiss der Installer welche Files geladen werden müssen und in welchem Verzeichnis die liegen.

Update Datei
Ein Update über eine Datei geht dann wie folgt ... Der User startet den Installer Wizzard. Wenn der eine Installation im Prog Ordner vorfindet, dann nimmt er die XML Datei aus dem Paket. Nun geht der Installer alle Dateien im Prog Ordner durch. Er erstellt für die vorhandenen Dateien den MD5 Hash und wenn der Hash unterschiedlich zu dem aus dem Paket ist, wird die Datei erneuert. Das bedingt natürlich das die Anwendung nicht läuft.

Update Web
Ähnlich wie bei der Datei ... Der Wizzard läd die XML Datei vom Server. Nun geht er wieder alle Dateien im Prog Ordner durch und vergleicht die MD5 Hash Werte mit denen aus der XML Datei. Bei Unterschieden wird die neue Datei vom Webserver geladen und ersetzt die alte Datei.

Updates Backup
Eine Überlegung wäre die letzten aktualisierten Dateien in einem Backup Ordner zu sichern. So könnte der User ggf. einen vorherigen Stand wieder herstellen.

USB Stick
Da unsere Anwendung auch die Möglichkeit bietet direkt vom Stick zu laufen, wäre es so auch möglich das der Wizzard gleich eine Stick Version erstellt - entweder über die Paket Datei oder eben übers Web.

Uninstaller
Natürlich brauch das ganze auch einen Uninstaller. Der liegt im Prog Verzeichnis und wird auch als Unistaller in Windows registriert. Der löscht letztlich nur den Prog Ordner und fragt ggf. ob die Userverzeichnisse auch bereinigt werden sollen.

Ich denke das man so ein recht schlankes Installer / Update System hinbekommt. Ich bin mir im Moment nicht sicher ob MD5 ausreicht.

Was meint ihr zu der Idee?
Dominik Schmidt
Greetz Dominik

I love Delphi 2007/2010
  Mit Zitat antworten Zitat