Einzelnen Beitrag anzeigen

Benutzerbild von Catbytes
Catbytes

Registriert seit: 7. Sep 2002
Ort: Heckendalheim
353 Beiträge
 
Delphi XE5 Enterprise
 
#16

Re: Patches programmieren

  Alt 23. Apr 2005, 12:51
Hallo,

da ich das grad für mein aktuelles Projekt umgesetzt habe, hier mal, wie ich das gelöst habe.

Ich habe ein Zusatzprogramm (Updater.exe) geschrieben, daß aus dem Hauptprogramm aufgerufen wird. Das Hauptprogramm wird dann geschlossen (eine offene Datei zu patchen wird schwer). Das Update-Programm läd sich dann von meiner Homepage das aktuelle Update herunter, das kumulativ ist.

Alle relevanten Daten werden dann getauscht und das Update-Programm ruft dann das Hauptprogramm wieder auf und beendet sich selber.

Das ganze habe ich noch mit einer Art Scriptsprache versehen, falls doch noch andere Programme vor dem Hauptprogramm ausgeführt werden müssen, oder falls andere Dateien in anderen Verzeichnissen kopiert werden müssen.

Jetzt muß ich mir nur noch überlegen, wie ich das mache, wenn ich das Updater-Programm updaten will. Vermutlich prüfe ich noch vor dem Aufruf des Updater-Programms, ob auch dort eine neue Version existiert und tausche es vor dem Aufrufen auf. Ist zwar kompliziert und mit viel Arbeit verbunden, aber bei klappt das einwandfrei.

Ablauf:
* User oder Programm prüft auf Updates
* Update wird gefunden und das Updater-Programm wird geprüft, ob auch hier neue Updates vorliegen
* Wenn ja -> aktuelles Updater-Programm wird heruntergeladen
* Hauptprogramm ruft Updaterprogramm auf und beendet sich selbt
* Updater-Programm läd Dateien herunter und aktualisiert
* Updater-Programm ruft wieder Hauptprogramm (oder andere) auf und beendet sich selbst

Symantec macht das mit Live-Update ganz ähnlich.

Die Scriptdatei sieht bei mir z.B. so aus:
Code:
<UPDATE>
<FILES>
/update/ramdefrag/onlineupdate/;ram_defrag.zip;[PROGRAMDIR];true
</FILES>

<START>
[PROGRAMDIR]ram_defrag.exe;0
</START>

</UPDATE>
Das Wort <UPDATE> leitet das Update ein
Unter <FILES> stehen die Dateien, die heruntergeladen werden, und wohin entpackt werden soll. "True", ob überschrieben werden soll, oder nicht.

Unter <START> alle Programme, die danach wieder aufgerunfen werden sollen. Die Zahl dahinter in Sekunden wielange gewartet werden soll, bis sich das Updateprogramm dann selbst beendet.

Bei weiteren Fragen - frag
Catbytes
  Mit Zitat antworten Zitat