Einzelnen Beitrag anzeigen

Marco Steinebach

Registriert seit: 4. Aug 2006
502 Beiträge
 
Delphi 5 Enterprise
 
#22

Re: TWebUpdate - eine neue WebUpdate-Komponente

  Alt 17. Mai 2008, 19:57
Hallo Listers,
Es gibt eine Neue Version der WebUpdate-Komponente, V1.01.0.
Es hat sich einiges Neue getan.
An dieser Stelle ein Dank an Fylo und Svenkan für die Ideen.
Das SSL gibt's im nächsten update.

Neuerungen:
Für jede, in der Versionsdatei angegebene Datei, gilt:
ist ein Pfad angegeben, wird die Datei beim Herunterladen
dort hinein kopiert. (wie gehabt).
Ist
Pfad=
angegeben, oder wird die Angabe schlicht weggelassen, wird die Datei in ein Unterverzeichnis, unterhalb des Programmverzeichnisses, mit dem Namen WebUpdateDateien kopiert.
All diese Dateien werden, nach Programmende, ins eigentliche Programmverzeichnis kopiert.
Das hat den vorteil, daß auch mehrere Dateien, beispielsweise dlls, im Programmverzeichnis ersetzt werden können.
Wird z.B.
Pfad=sound
angegeben, wird die Datei ins Verzeichnis sound\ unterhalb des eigentlichen Programmverzeichnisses kopiert.
So kann, weiterhin, eine Image, sound,-...-Datei ersetzt werden.
Die erste datei, die den Zusatz
Start=1
hat, wird von der Batch-Datei als letzte Aktion ausgeführt.
Auf diese Weise, kann das Programm sofort nach dem Update automatisch wieder neu gestartet werden.
Schaut euch auch das Beispiel im demo an.
Das bringt u.a. den enormen vorteil, daß man als neue Programmversion schlicht die Programmdatei benutzen kann, und die nicht umständlich erst umbenennen muß.

Die Section
[Einstellungen]
samt
[DirektesUpdate]
entfällt dadurch komplett.

Um ein indirektes Update, also das Ganze über ein setup.exe durchzuführen, sieht die Sektion für Datei001 dann so aus:
[Datei001]
name=setup.exe
; die eigentliche Update-Datei, als Setup verpackt.
Pfad=
; wird ins Programmverzeichnis kopiert.
Start=1
; wird, nach dem alles kopiert ist, ausgeführt.

Hier bleibt dem Programmierer lediglich, die Setup.exe nach Programmstart von Hand zu löschen, da WebUpdate nicht weiß, daß es sich um eine Update-Datei handelt.
Also z.B.
Code:
UpdateName := ExtractFilePath (Application.ExeName) + 'setup.exe';
If FileExists (UpdateName) then
  DeleteFile (UpdateName);
Die Batchdatei entfernt, um keinen Müll zu hinterlassen, gnadenlos alle Dateien in
WebUpdateDateien
und auch das verzeichnis selbst.

Ebenso wurden das Demo und die Doku ein wenig überarbeitet - ich hoffe,zum Besseren hin.

So. Ich warte, wieder, auf Lob, Kritik, Anregungen und sowas schönes alles!
Einen schönen Abend!
Marco
p.s.: ach ja, , geänderte Version, wie immer, im ersten Beitrag.
Marco Steinebach
  Mit Zitat antworten Zitat