| Autor |
Beitrag |
Novo
      
Beiträge: 90
Win XP, Win 7
Delphi 7 Enterprise, Delphi 2009
|
Verfasst: Mo 08.06.09 17:05
hi,
ich meld mich mal auch wieder in der Delphi Szene zurück nach langer Zeit.
Ich möchte ein Autoupdate realisieren (wahrscheinlich mit Indy).
Es soll prüfen, ob eine neue Version meines Programms verfügbar ist, und dann die Dateien, die neu sind, downloaden!
Bloss ka. wie ich das anstellen soll, da das sehr viele Dateien sind, und fast alle keine integrierte Versionsnummer haben.
(MySQL Datenbank Files des portable Apache und einige Batch und ein Opensource Programm usw.)
Also dann wohl CRC oder MD5 Hash check, und wenn unterschiedlich -> download und ersetzen.
Wie mach ich das?
Kennt sich damit jemand aus?
Würde mich furchtbar freuen auf vllt. einer kleinen Zusammenarbeit in ICQ oder so, wenn mir einer helfen mag?
Mfg Novo
Zuletzt bearbeitet von Novo am Mo 08.06.09 17:08, insgesamt 1-mal bearbeitet
|
|
jaenicke
      
Beiträge: 19341
Erhaltene Danke: 1752
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Mo 08.06.09 17:07
Es wäre wohl am sinnvollsten eine Dateiliste inkl. Versionsnummern zu führen.
Eine Checksumme online zur Verfügung zu stellen wäre aber sowieso sinnvoll um sicherzugehen, dass es keine Übertragungsfehler gibt. Und die könntest du natürlich auch vergleichen.
|
|
BenBE
      
Beiträge: 8721
Erhaltene Danke: 191
Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
|
Verfasst: Mo 08.06.09 17:13
Und nicht vergessen, in deinem Updater VOR dem Ersetzen der Dateien eine Signatur zu überprüfen, damit dir keiner was unterschieben kann.
_________________ Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
|
|
Novo 
      
Beiträge: 90
Win XP, Win 7
Delphi 7 Enterprise, Delphi 2009
|
Verfasst: Mo 08.06.09 17:16
jaenicke hat folgendes geschrieben : | | Es wäre wohl am sinnvollsten eine Dateiliste inkl. Versionsnummern zu führen |
Danke für die schnelle antwort.
Das kannst du aber vergessen, das sind einfach viel zu viele Dateien!
Bisher hab ich das so, dass ich immer ein Full Pack mache, dass Programm läd die Full update.zip und entpackt sie.
Netter wärs echt, dass es nur die geänderten Files updated.
(Wobei das eh fast alle sind xD)
Das ist dann so nicht möglich.
Wobei ich einige Projekte kenne, die sehr viele Dateien updated, aber die haben wahrscheinlich alle Versionsnummern oder sind gelistet.
Das ist bei mir aber nicht möglich.
OK hat sich dann erledigt.
thx
|
|
jaenicke
      
Beiträge: 19341
Erhaltene Danke: 1752
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Di 09.06.09 00:48
Novo hat folgendes geschrieben : | | Das kannst du aber vergessen, das sind einfach viel zu viele Dateien! |
Warum? Das musst du doch nicht manuell machen. Du kannst doch ein Programm dafür schreiben, das die Liste jeweils aktualisiert und die Datei selbst vorher auch gleich hochlädt.
|
|
Novo 
      
Beiträge: 90
Win XP, Win 7
Delphi 7 Enterprise, Delphi 2009
|
Verfasst: Di 09.06.09 15:39
|
|
jaenicke
      
Beiträge: 19341
Erhaltene Danke: 1752
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Di 09.06.09 18:51
Naja, am einfachsten wäre es, wenn in der Datei in jeder Zeile am Anfang der Dateiname und danach die Checksumme z.B. steht. Dann müsste dein Programm nur diese Datei in eine TStringList laden und alle Zeilen nach dem Dateinamen durchsuchen. Ist der noch nicht drin, wird er hinzugefügt.
Zusätzlich muss die Checksumme berechnet werden, dafür bietet sich MD5 an, da gibt es eine Unit dafür. Die solltest du finden, wenn du im Forum nach md5.pas suchst.
Zum Upload bietet sich dann TIdFTP von den Indy Komponenten an, wenn es sich um einen FTP-Server handelt. Wichtig ist dabei, dass du das Passwort in dem Uploadprogramm drin hast, du dieses also nicht weitergeben solltest.
|
|
oki
      
Beiträge: 40
Win XP
Delphi 2007 Prof
|
Verfasst: Di 09.06.09 19:31
Warum nicht ein Setup herunterladen und durch den Updater starten? Mit InnoSetup kann man das recht schnell und einfach erstellen. Die Version kann in den Dateinamen des Setup und fertig. Will man sich das zusammenstellen vieler unterschiedlicher Dateien in vielen Setups sparen, so kann man die Flags im InnoSetup nutzen (ignoreVersion etc.).
Gruß oki
_________________ 42
|
|
jaenicke
      
Beiträge: 19341
Erhaltene Danke: 1752
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Di 09.06.09 19:33
Dann müssten aber immer alle Dateien heruntergeladen werden in dem Setup statt selektiv die neuen.
|
|
BenBE
      
Beiträge: 8721
Erhaltene Danke: 191
Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
|
Verfasst: Di 09.06.09 19:42
MD5 und SHA1 sollten nicht mehr genutzt werden. Alternativen wären SHA512 oder Whirlpool.
_________________ Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
|
|
oki
      
Beiträge: 40
Win XP
Delphi 2007 Prof
|
Verfasst: Di 09.06.09 19:46
jaenicke hat folgendes geschrieben : | | Dann müssten aber immer alle Dateien heruntergeladen werden in dem Setup statt selektiv die neuen. |
Ja klar, bei vielen kleinen Dateien sollte das akzeptabel sein. Anderenfalls muß man den Aufwand auf der Updater-Seite treiben.
Die Frage ist halt immer, wo ist das Optimum zwischen Aufwand/Nutzen.
Gruß oki
_________________ 42
|
|
|