Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   UU - Universal Updater v0.3 (https://www.delphipraxis.net/107685-uu-universal-updater-v0-3-a.html)

Strahlex 31. Jan 2008 19:15


UU - Universal Updater v0.3
 
Liste der Anhänge anzeigen (Anzahl: 1)
Universal Updater v0.3
http://gostrahlex.go.funpic.de/image...te/UU-Logo.PNG

Da ich es umständlich fand, vor allem für kleinere Programme, immer einen neuen Update-Client zu programmieren hab ich mal den Universal Updater geproggt:

Features:
  • universell anpassbarer Client
  • Download komprimierter Updatepakete mittels 7Zip
  • UpdateManager für das einfache und schnelle veröffentlichen von Updates
Voraussetzungen:
  • Webserver mit HTTP und FTP Unterstützung
  • 7Zip zum komprimieren der Updates
  • TSevenZipVCL und die Indys fürs selber kompilieren
Screenshots:
http://img3.imagebanana.com/img/h7dz...0815_58_57.png
http://img3.imagebanana.com/img/d66c...0816_09_30.png

Download:
goStrahlex.funpic.de


Was folgen wird:
  • bessere Performance des Updaters



Anleitung:

Grundvoraussetzungen:
  • Webserver mit HTTP und FTP Zugriff
  • 7Zip zum packen der Dateien
ServerStruktur:
Auf dem Update-Server sollte ein eigenes Verzeichnis für das Programm vorhanden sein, in diesem wird mittels Update-Manager die Versionsdatei erstellt. Dieses Verzeichnis sollte außerdem einen Ordner mit dem Namen "files" enthalten, hierhin werden vom Update-Manager die Update-Packete im Sevenzip-Format kopiert.


Updater konfigurieren:
Im Verzeichnis des Updaters liegt eine update.cfg und eine uninstall.cfg, diese beiden Dateien müssen auf das Programm angepasst werden.

update.cfg - Aufbau:
1. Zeile: Warnung für die User
2. Zeile: Der Update-Server
3. Zeile: Verzeichnis am Update-Server
4. Zeile: Name der zu updatenden Anwendung

uninstall.cfg - Aufbau:
1. Zeile: Warnung für die User
ab der 2. Zeile sollten die Namen der vor dem Update zu löschenden Dateien eingetragen werden


Update-Manager:
zuerst muss das Update mit 7Zip in eine 7z-Datei gepackt, dazu am besten alle veränderten Dateien seit dem Release und die uninstall.cfg einpacken.

Der Update-Manager sollte sich in Prinzip selbst erklären...

Man kann vielleicht noch einen UnInstaller oder so dazugeben der sich auf die uninstall.cfg bezieht.

Integration in ein Projekt:
Um den Updater in ein Projekt einzubinden sollte man ihn am besten beim starten des Programms mitstarten, wenn kein Update verfügbar ist bleibt dieser leise und unsichtbar, ist jedoch ein Update verfügbar wird die Update-Meldung erscheinen. Das Programm sollte automatisch beim Update terminiert werden.

Wenn der Updater nicht "geheim" bleiben soll gibt es den Paramter "-explizit", diese eignet sich zum Beispiel für einen Update-Button im Projekt.

neu:
Backup-Funktion mit dem Paramter "-backup"

Anregungen, Beschwerden und Modifikationen sind erwünscht!!! :warn:

Strahlex 3. Feb 2008 18:27

Re: UU - Universal Updater v0.2
 
So Leute ich hab jetzt Version 0.2 fertiggestellt und außerdem eine kurze Anleitung verfasst.
Die Programmicons kommen erst in der nächsten Version. :thumb:

Strahlex 7. Feb 2008 19:00

Re: UU - Universal Updater v0.2
 
Falls wer einen guten Gratis-Webhost sucht:
Funpic :stupid:

kann alles was ein Server können muss, Nachteil: nur Dateien bis 1Mb oder so.

gsh 7. Feb 2008 19:17

Re: UU - Universal Updater v0.2
 
Das Projekt schaut ganz gut aus ;)
Ich werds mir mal anschauen wenn ich zeit hab

shmia 8. Feb 2008 13:44

Re: UU - Universal Updater v0.2
 
Folgendes fällt auf:
1.) Updater und UpdateManager sollten unterschiedliche Unitnamen erhalten, damit man beide Projekte in einem Sourcecodeverzeichnis ablegen kann
2.) Gemeinsame Funktionen (z.B. function GetSizeName()) von Update und UpdateManager sollten in eine eigene Unit gepackt werden
3.) selbstgeschriebene Methoden (z.B. procedure SearchVersion) gehören in den Abschnitt private und nicht in den Bereich, der von der IDE gemanaged wird.

Strahlex 8. Feb 2008 21:08

Re: UU - Universal Updater v0.2
 
Zitat:

Zitat von shmia
Folgendes fällt auf:
1.) Updater und UpdateManager sollten unterschiedliche Unitnamen erhalten, damit man beide Projekte in einem Sourcecodeverzeichnis ablegen kann
2.) Gemeinsame Funktionen (z.B. function GetSizeName()) von Update und UpdateManager sollten in eine eigene Unit gepackt werden
3.) selbstgeschriebene Methoden (z.B. procedure SearchVersion) gehören in den Abschnitt private und nicht in den Bereich, der von der IDE gemanaged wird.

Danke shmia, daran hab ich gar nicht gedacht

hab gleich mal das gane zusammengefasst und eine Project Group erstellt

OldGrumpy 9. Feb 2008 08:00

Re: UU - Universal Updater v0.2
 
Ein Feature das mir noch fehlt wäre eine Option mit der die Files die gelöscht werden müssen fürs Update in einem Unterordner "Backup" oder wie auch immer gesichert werden, damit man ggf. die alte Version wiederherstellen kann.

Ferdy2003 10. Feb 2008 16:18

Re: UU - Universal Updater v0.2
 
Hallo,

ich würde mir den Updater gerne ansehen, ich habe aber leider so meine Probleme bei der Installation von TSevenZip in meinem Delphi. Ich verwende Delphi 2007 (RAD Studio) hat mir jemand evtl. einen Tipp wie ich es in mein Delphi rein bekommen kann? Auf der Seite des Programmierers finde ich leider kein Tut oder Docs zu der Komponente.

Vielen Dank!

P.S. Fall diese Frage nicht hier rein gehört, sag ich schonmal vorher Entschludigung ich bin mir da nicht so sicher.

Gruß

Ferdy2003

STS301 10. Feb 2008 16:37

Re: UU - Universal Updater v0.2
 
ich habe ihn auch schon mal gefragt:

er hat mir gesagt, dass ich die SevenZip.pas einfach ins "lib" kopieren soll, am besten du fügst die .pas in ein Pakage und installierst es dann

Ferdy2003 10. Feb 2008 16:52

Re: UU - Universal Updater v0.2
 
Zitat:

Zitat von STS301
ich habe ihn auch schon mal gefragt:

er hat mir gesagt, dass ich die SevenZip.pas einfach ins "lib" kopieren soll, am besten du fügst die .pas in ein Pakage und installierst es dann

Danke das mit dem Package hat wunderbar funktioniert :)


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:40 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz