AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Prüfmethoden für Updates

Ein Thema von TheMiller · begonnen am 20. Aug 2014 · letzter Beitrag vom 31. Jul 2021
Antwort Antwort
Seite 3 von 4     123 4      
Benutzerbild von FBrust
FBrust

Registriert seit: 4. Okt 2002
Ort: Saarbrücken
654 Beiträge
 
Delphi 10.4 Sydney
 
#21

AW: Prüfmethoden für Updates

  Alt 26. Aug 2014, 13:26
Hallo,

  1. Programmiererzeugnisse und Abhängigkeiten in den Release-Ordner verschieben (wenn nicht bereits getan)
  2. Rollout erzeugen (zB: via InnoSetup)
  3. via Oberfläche eine update.ini erzeugen und automatisch veröffentlichen lassen
  4. Benutzer startet sein Programm
  5. Updater vergleicht remote-Versionskennung (aus updates.ini) mit lokaler Versionskennung aus Datei/DB. (Versionskennung könnte Build-nr, timestamp etc. sein)
  6. Wenn sich diese unterscheiden, läd der Updater das Rollout herunter (Datei entimmt er der updates.ini)
  7. Nach dem Download wird das Rollout mittels Hash verifiziert.
  8. Das Rollout wird installiert bzw. Daten werden entpackt (je nachdem ob portable oder fest installiert)
  9. Programm wird wieder gestartet.
Ich mache es derzeit genauso (allerdings ohne Hash, aber diese Anregung nehme ich gerne mit). Ich habe mir einen "Uploader" geschrieben, der aufgrund der Programmversion im Release-Ordner die update.ini erzeugt und Setup-Programm und ini-Datei auf einen Server hochlädt.

Unterscheidungsmerkmal ist dabei die Build-Nummer, d. h. bei jeder Programmversion, die veröffentlicht wird, muss zwingend die Buildnummer erhöht werden.

Setups werden auch mit Innosetup erzeugt.

Das Programm startet nach dem Herunterladen das Setup im Silent-Modus, d. h. das Setup läuft zwar sichtbar, aber ohne Eingriffsmöglichkeit (ist ja nur ein Update) durch und startet danach das Programm wieder.

Das alles läuft seit ca. 5 Jahren ohne Probleme.

Gruß
Frank
"Ich habe Dinge gesehen, die ihr Menschen niemals glauben würdet. Gigantische Schiffe, die brannten, draußen vor der Schulter des Orion" - Roy Batty
  Mit Zitat antworten Zitat
Thomas_K

Registriert seit: 16. Apr 2006
71 Beiträge
 
Delphi XE8 Professional
 
#22

AW: Prüfmethoden für Updates

  Alt 26. Aug 2014, 13:31
@Frank "Zwischenzeitlich sind neue Beiträge geschrieben worden."

So grob wie das DJ-SPM hier beschreibt hab ich das hier am Laufen - nur erstmal nur im Intranet. Ach ich verwende innosetup für die "donkey work".

Ich verzichte/vereinfache ein paar Dinge. Es gibt bei mir kein einständiges Update-Hilfs-Programm, sondern der Update.ini check machen die Programme selbst, in einem extra Threads (Objekt Orientiert). Innosetup führt schon eine Integritätsüberprüfung selbständig durch, schlecht ist aber auch nicht das nochmal zu kontrollieren. Es besitzt ein silent bzw. ein verysilent Installations-Modus, von dem ich regen Gebrauch mache (Parameter stehen in den Update.ini(s)) , außerdem lassen sich weitere Kommandozeilenparameter auswerten, die am Ende des automatischen Setups das Programm wieder selbständig starten lässt, zusammen mit einem Kommandozeilenparameter (‚/update‘), der wiederum dafür sorgt, dass eine Erfolgsmeldung angezeigt wird, die der Anwender nur noch ab nicken brauch. Der Vorgang dauert im Allgemeinen hier nur wenige Sekunden.

Es gibt auch keine Zwei verschiedene Setup.exe(s) sondern update - und reguläres Setup ist ein und dieselbe Datei. Mit Innosetup brauch man auch nicht unbedingt in das Programm-Files, sondern automatisch unter appdata installieren, wenn der Anwender eh keine Admin-Rechte besitz, so brauch man auch niemanden bei jedem Update zu Bitten und Betteln.
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#23

AW: Prüfmethoden für Updates

  Alt 26. Aug 2014, 13:52
Unterscheidungsmerkmal ist dabei die Build-Nummer, d. h. bei jeder Programmversion, die veröffentlicht wird, muss zwingend die Buildnummer erhöht werden.
Genau da halte ich mich eher an die hier beschriebene Vorgehensweise.
Die Auslieferung erhöht die Hauptversions-, Nebenversions- oder Revisions-Nummer.

Die Buildnummer ist hier eher unwichtig. Zur Auslieferung wird dann im VCS auch ein entsprechendes Tag gesetzt (1.0.0, 1.0.1, 1.1.0, ...)
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Benutzerbild von FBrust
FBrust

Registriert seit: 4. Okt 2002
Ort: Saarbrücken
654 Beiträge
 
Delphi 10.4 Sydney
 
#24

AW: Prüfmethoden für Updates

  Alt 26. Aug 2014, 14:38
Hallo,

@Thomas K: Ich hatte keinen roten Kasten.

Ansonsten verwende ich auch nur eine Setup.exe die nach Bedarf mit Parametern aufgerufen wird.


Gruß
Frank
"Ich habe Dinge gesehen, die ihr Menschen niemals glauben würdet. Gigantische Schiffe, die brannten, draußen vor der Schulter des Orion" - Roy Batty
  Mit Zitat antworten Zitat
Thomas_K

Registriert seit: 16. Apr 2006
71 Beiträge
 
Delphi XE8 Professional
 
#25

AW: Prüfmethoden für Updates

  Alt 26. Aug 2014, 15:19
Hallo,
@Thomas K: Ich hatte keinen roten Kasten.
Frank
Aber ich und ich wollte/konnte auch nix mehr Ändern bzw. Bezug auf deine Antwort nehmen - sorry.
  Mit Zitat antworten Zitat
Benutzerbild von FBrust
FBrust

Registriert seit: 4. Okt 2002
Ort: Saarbrücken
654 Beiträge
 
Delphi 10.4 Sydney
 
#26

AW: Prüfmethoden für Updates

  Alt 26. Aug 2014, 16:33
Hallo,

Aber ich und ich wollte/konnte auch nix mehr Ändern bzw. Bezug auf deine Antwort nehmen - sorry.
Ach so, dann ist ja gut

Gruß
Frank
"Ich habe Dinge gesehen, die ihr Menschen niemals glauben würdet. Gigantische Schiffe, die brannten, draußen vor der Schulter des Orion" - Roy Batty
  Mit Zitat antworten Zitat
Benutzerbild von TheMiller
TheMiller

Registriert seit: 19. Mai 2003
Ort: Gründau
2.480 Beiträge
 
Delphi XE7 Architect
 
#27

AW: Prüfmethoden für Updates

  Alt 28. Aug 2014, 18:41
So, mein Updater ist nun fertig. Ich werde ihn noch etwas testen und dann - wenn Interesse besteht - mit euch teilen. Ich habe eine Demo-Applikation geschrieben, ein RolloutMaker zum Erstellen von Updates und alles ist via DoxyGen dokumentiert.

Der Updater, bestehend auf 4 Klassen, kann derzeit folgendes:
  • Simple Einrichtung: Die Update-Suche und das Downloaden ist in 10 Codezeilen durch Benutzung der Update-Klasse vollständig konfiguriert.
  • Simples Erstellen von Rollouts: Mit 3 Klicks ist das Rollout erstellt und veröffentlicht.
  • Automatisches Erstellen der lokalen Versionsdatei, welche zum Vergleich dient.
  • Automatische Suche nach Updates. Versionserkennung anhand einer (selbstdefinierbaren) Versionsnummer. Sie muss nicht einkompiliert sein.
  • Updates herunterladen (eigener Thread). Indy-Events OnWork etc.pp. werden durchgereicht, sodass die Stati und Fortschritte in der GUI anzeigbar sind.
  • ReleaseNotes publizieren und anzeigen.
  • Erstellen eines Updates: 3-Klick-System. Der RolloutMaker läd das Projekt, liest die neuen Infos aus, erstellt die Steuerdatei und lädt die Daten automatisch per FTP an ihren Platz (eigener Thread). Auch hier werden alle Events durchgereicht. Die FTP-Einstellungen werden in den Projekteinstellungen definiert.
  • Durch den Aufbau des Updaters und der lokalen Versionsdatei ist es möglich, ein zentrales Update-Programm für mehrere eigene Produkte zu erstellen.

Das waren jetzt alle Highlights, glaube ich. Klar kann man immer etwas verändern, aber so funktioniert es erstmal. Bei Interesse lade ich es gerne mal hoch.

Auf diesem Wege möchte ich damit erstmal für die Hilfe, Anregungen und Ideen bedanken.
  Mit Zitat antworten Zitat
Dejan Vu
(Gast)

n/a Beiträge
 
#28

AW: Prüfmethoden für Updates

  Alt 29. Aug 2014, 07:54
Ersetzt Du die Dateien direkt? Was passiert beim Verbindungsabbruch? Funktioniert dann alles noch?
Oder war das nur missverständlich formuliert?
Zitat:
...und lädt die Daten automatisch per FTP an ihren Platz (eigener Thread).
  Mit Zitat antworten Zitat
Benutzerbild von sh17
sh17

Registriert seit: 26. Okt 2005
Ort: Radebeul
1.664 Beiträge
 
Delphi 11 Alexandria
 
#29

AW: Prüfmethoden für Updates

  Alt 26. Jun 2015, 11:05
Um noch einmal den Streitpunkt "Update als Service" aufzugreifen:

Welche Möglichkeit gibt es denn noch, es dem Benutzer einer Anwendung so einfach wie möglich zu machen?

Als Beispiel, meine Anwendung besteht aus einem Service, der irgendwo auf einem Server rumdümpelt.
Der hat manchmal nicht mal einen gescheiten Monitor, geschweige denn kommt da jeder Anwender ran.

Meine Idee ist nun, einen zweiten Update-Service daneben zu installieren, der den Hauptdienst überwacht
,ggf beendet und aktualisiert. (Meinetwegen auch per anstubsen vom Benutzer) Mit dem Update werden noch
die Client-Pakette bereitgelegt, die sich dann die Clients beim nächsten Anmelden über einen Starter
vom Server herunterladen und installieren. So hab ich doch ein recht gutes System, was sich selbst
verteilt und sehr wenig Eingriffe vom Benutzer benötigt. Die haben nämlich in der Regel keinen Admin
an der Seite.

Ich würde sogar noch soweit gehen, das der Updater von uns als Anbieter ferngesteuert werden kann, wenn der
Kunde das möchte (in der Regel stimmen sie zu, sie wollen so wenig wie möglich machen,
außer einfach die Software verwenden). Mit noch ein paar kleinen Tests könnte man die Installation
noch auf Fehler prüfen und wir können eingreifen.

Aber wenn wer noch eine andere Idee hat, ich bin interessiert.
Sven Harazim
--
  Mit Zitat antworten Zitat
Barthiboy

Registriert seit: 4. Nov 2011
36 Beiträge
 
#30

AW: Prüfmethoden für Updates

  Alt 29. Jul 2021, 12:31
Hallo,
ich würde Interesse an dem Updater anmelden.
Gibt es irgendwo ein Repository oder einen Link, wo ich ihn herunterladen kann?
Danke

Gruß
Christian

Das waren jetzt alle Highlights, glaube ich. Klar kann man immer etwas verändern, aber so funktioniert es erstmal. Bei Interesse lade ich es gerne mal hoch.

Auf diesem Wege möchte ich damit erstmal für die Hilfe, Anregungen und Ideen bedanken.[/QUOTE]
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 4     123 4      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:30 Uhr.
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