Wie auf Update des eigenen Programms prüfen?

Für allgemeine Fragen zur Programmierung mit PureBasic.
Nino
Beiträge: 1300
Registriert: 13.05.2010 09:26
Wohnort: Berlin

Wie auf Update des eigenen Programms prüfen?

Beitrag von Nino »

Hallo,

ich will zum ersten Mal in ein Programm einen Menüpunkt "Auf Update prüfen" einbauen.
Eine eigene Website ist vorhanden (von dort wird man das Programm sowieso herunterladen können).

Wie kann ich einfach und zuverlässig eine Update-Prüfung durchführen?
Im Moment ist meine Idee, dass ich auf meine Website eine Textdatei hochlade, in der die aktuelle Versionsnummer des betr. Programms steht. Eine Instanz meines Programm kann dann diese Datei herunterladen und die darin notierte Versionsnummer mit der eigenen Versionsnummer vergleichen.

Ich freue mich über andere, konstruktive Vorschläge.
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 6999
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Re: Wie auf Update des eigenen Programms prüfen?

Beitrag von STARGÅTE »

Genau so würde ich das auch machen. Die Textdatei muss dabei auch gar nicht richtig runtergeladen werden, es gibt ja auch ReceiveHTTPMemory().
Aber Achtung wegen Datenschutz. Nicht jeder mag es, wenn ein Programm "nach Hause telefoniert", auch wenn es nur eine Versionsnummernabfrage ist, kann der Betreiber (du) ja die Daten vom Clienten auswerten.
Das also über einen zusätzlichen Klick im Menüpunkt zu realisieren, statt automatisch, ist also schon mal die richtige Wahl.
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Andesdaf
Moderator
Beiträge: 2660
Registriert: 15.06.2008 18:22
Wohnort: Dresden

Re: Wie auf Update des eigenen Programms prüfen?

Beitrag von Andesdaf »

Hallo Nino,

so habe ich das auch gelöst, bisher ohne Probleme. Als Ideenanstoß: es gibt eine XML-Datei mit den Informationen zur Version

Code: Alles auswählen

<lsmfile type="updtcurrentversion">
	<val id="int">041211024</val>
	<val id="str">0.41.211024</val>
	<val id="loc">Pfad zum Download</val>
	<val id="size">2814719</val>
</lsmfile>
und eine mit Changelog

Code: Alles auswählen

<lsmfile type="updtversioninfo">
	<version id="41210411" str="0.41.210411" date="2021-04-11">
		<change>...</change>
		<change>...</change>
	</version>
	<version id="41211024" str="0.41.211024" date="2021-10-24">
		<change>...</change>
		<change>...</change>
	</version>
</lsmfile>
die bei der Updateprüfung heruntergeladen und mit der aktuellen Programmversion verglichen werden.
Win11 x64 | PB 6.00 (x64)
Nino
Beiträge: 1300
Registriert: 13.05.2010 09:26
Wohnort: Berlin

Re: Wie auf Update des eigenen Programms prüfen?

Beitrag von Nino »

Das funktioniert bestens. :-)
Vielen Dank Euch beiden!
Benutzeravatar
RSBasic
Admin
Beiträge: 8022
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: Wie auf Update des eigenen Programms prüfen?

Beitrag von RSBasic »

Guten Morgen Nino,
ich habe bei meinen Anwendungen bisher nur einen Updater entwickelt und zwar bei WinAPI Library, weil es sich nur dort gelohnt hat, weil ich seit dem ersten Release insgesamt 48 Updates bereitgestellt habe.
Mein Updater arbeitet differentiell/inkrementell. Für dieses Programm habe ich auch eine Textdatei auf meinem Server und sieht so aus: https://www.rsbasic.de/aktualisierung/w ... /Index.ini
Ich liste alle Dateien mit Dateigröße und MD5-Hash und wenn man in WinAPI Library auf "Nach Updates suchen" klickt, dann lädt er diese Textdatei herunter und vergleicht die Dateien, ob eine Datei neu ist oder sich geändert hat.
Alle gefundenen Dateiänderungen landen in eine Queue und zum Schluss bekommt der Benutzer die Meldung, ob ein Update verfügbar ist und wenn er damit einverstanden ist, dann werden alle fehlenden und geänderten Dateien heruntergeladen und ersetzt.
Mein Updater ist Demand und wird nicht automatisch gestartet, weil ich das auch nicht mag, wenn Programme ständig "nach Hause telefonieren".
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Nino
Beiträge: 1300
Registriert: 13.05.2010 09:26
Wohnort: Berlin

Re: Wie auf Update des eigenen Programms prüfen?

Beitrag von Nino »

Guten Morgen RSBasic,

vielen Dank auch an Dich für diese ausführliche Schilderung!
Eine automatische Update-Prüfung werde ich zunächst auch nicht einbauen – evtl. in einer späteren Version des Programms, aber dann nur als Option, die der Benutzer selbst aktiv auswählt.
Antworten