Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Updatefunktion via https, Auslöser - Vorschläge (https://www.delphipraxis.net/207436-updatefunktion-via-https-ausloeser-vorschlaege.html)

davtix 23. Mär 2021 22:58

Updatefunktion via https, Auslöser - Vorschläge
 
Hallöchen,

ich suche eine Methode meine Programme aus dem Intranet automatisch updaten zu lassen.
Derzeit habe ich eine Ordnerfreigabe in dem die Updater das Dateidatum vergleichen als Auslöser für ein mögliches Update.
Nun möchte ich das gerne auf das Intranet verschieben, bzw die Releaseordner im Intranet bereitstellen.
Das Downloaden und co Funktioniert soweit...

... wo es nu hängt ist ein Auslöser,
ohne die Datei immer runterladen und prüfen zu müssen oder eine zusätzliche Datei mit xyz Wert erstellen zu müssen.

Gibt es irgendwas, das man ein Datum/Zeit(geändert) aus einer im Netz befindlichen Datei auslesen kann ?

danke für Vorschläge :)

mytbo 24. Mär 2021 12:09

AW: Updatefunktion via https, Auslöser - Vorschläge
 
Wenn du etwas Fertiges suchst, dann kann ich dir TWebUpdate von TMSSoftware empfehlen. Setze es seit vielen Jahren erfolgreich ein. Wenn du es selbst machen willst, kannst du dir Anregungen aus dem PDF-Manual von TWebUpdate holen.

Bis bald...
Thomas

DieDolly 24. Mär 2021 12:14

AW: Updatefunktion via https, Auslöser - Vorschläge
 
Ich habe es in etwa so gemacht:
mein "Update-Builder" erzeugt Bat-Dateien, kompiliert alles was das Projekt angeht und verschiebt die Exen in einen Ordner.
Zeitgleich wird für jede Datei ein md5-Wert gebildet und alle Werte+Dateiversion+Dateidatum werden in eine Textdatei geschrieben, die kommt auch in diesen Ordner da oben.
Den Ordner-Inhalt lade ich dann auf meinen Webserver.

Beim Updatevorgang lade ich die Textdatei und prüfe die md5-Werte mit den md5-Werten und den Dateiversionen der lokalen Dateien gegen.

generic 24. Mär 2021 12:26

AW: Updatefunktion via https, Auslöser - Vorschläge
 
Ich würde behaupten, dir bleibt nicht anderes übrig als ein Polling zu bauen.
Wie machst du das Update?
Hat jeder Netzwerkteilnehmer Admin-Rechte?
Wenn du einen HTTP Server verwendest, dann kannst du die HTTP Mechanismen verwenden.
Dort gibt es sowas wie Last-Modified. Heißt aber auch, dass du dir beim Abruf einige Werte merken müsstest du auf dem Client.

Siehe:
https://developer.mozilla.org/en-US/...P/Headers/ETag
https://developer.mozilla.org/en-US/...Modified-Since



Bist du in einer Windows Domäne?
Verteil die Software via GPO und MSI.

Hat den Vorteil, dass du bei den Mitarbeitern keine Admin-Rechte zum installieren brauchst.
OnDemand Installationen sind auch möglich via Software-Bereitstellung (ebenfalls per GPO).






Ansonsten hatte ich in meinen Youtube Kanal einen 3 Teiler zu dem Thema "Online-Updates".
https://www.youtube.com/playlist?lis...ytnR44RzYx-aoo

Für die MSI-Erstellung gibt es hier ebenfalls ein Video:
https://www.youtube.com/watch?v=m3lDzMl3Hq0

davtix 25. Mär 2021 01:28

AW: Updatefunktion via https, Auslöser - Vorschläge
 
Hallo und Danke für die Rückmeldungen.

Also ich hab mich erstmal für die Variante von "DieDolly" entschieden.
Damit bekomme ich erstmal am schnellsten eine Updatevariante hin, in der die Updateanwendung gleich mitupdatet, wenn gebraucht.

Der Updater startet sich selbst mittels createProcess und Adminrechten.
Zuvor ladet er eine kleine txt Datei herrunter und prüft diese.


Auf der Standartseite des iis für FTP Dateien steht auch ein Datum. Dies dachte ich zuerst extrahieren zu können ... aber nö. Finde nix zum runterladen um es dann analysieren zu können.
Auch gut irgendwo denn ich wollte eigentlich nicht den FTP sondern nur https dafür nutzen.

die Videos schau ich mir mal an, vielleicht finde ich noch weiteres passendes

habt Dank , grüsse


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:36 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