![]() |
Updatefunktion Regeln?!
Hallo noch eine frage. Wie kann ich es realisieren das beim start meiner anwendung diese die aktuelle Version auslist,
überprüft ob in pfad "xxx" eine neuere version vorhanden ist und sie gegebenfalls schliesst und die alten dateien updatet. Gedacht habe ich mir das ungefähr so: 1. Versteckter Button oder Hotkey um Updatepfad festzulgen, ggf. ftp oder http server. vorerst aber nur im Netzwerk. 2. Programmstart -> ME=Ver. 0.0.5 -> Update verfügbar auf Pfad "xx"? -> Ja! -> Mitteilung an den Benutzer das ein Update verfügbar ist, (nach klick auf OK wird update gestartet) -> Programm schliesst sich und startet exe/modul für update und erstezt die alten dateien -> Meldung das update erfolgreich war Info: Alte und Neue Version -> Klick auf OK schliesst das Update und Startet erneut die Anwendung. Vielen Dank im voraus, Steve |
Re: Updatefunktion Regeln?!
Ich habe das mit einer Anwendung wie folgt gelöst:
Es wird ein Start-Programm verwendet. Dieses vergleicht die Version des Clients mit der des Servers. Wenn es eine neuere auf dem Server gibt, wird diese auf den Client kopiert. Danach wird die Version auf dem Client gestartet und das Start-Programm beendet sich. |
Re: Updatefunktion Regeln?!
in welcher weise funktioniert das startprogramm?
man startet es und es kommt ein splashscreen?, wobei im hintergrund die version überprüft wird, wenn ja muss ich als "administrator" aber die möglichkeit haben den updatepfad festzulegen z.b. mit einem hotkey wärend des startens... |
Re: Updatefunktion Regeln?!
Würde ich auch so machen. Vllt. auf dem Server eine Liste ablegen (XML, wenn du kannst und willst), die die Namen und die aktuellen Versionsnummern bzw. die Prüfsummen enthalten. Dein Updateprogramm liest die Prüfsummen aus und erstellt von der installierten Version eine, vergleicht beide Werte und löst ggf. das Update aus. Nur nach Versionsnummern würde ich nicht gehen. Einmal in einer Komponente (DLL, Resourcendatei in Binärformat ohne Versionsinfo) vergessen, und das Updateprogramm weiß nicht was es tun soll.
Falls die Datei nicht ersetzt werden kann, oder falls sich das Updatetool auch mal selbst updaten muss, kannst du eine pending file operation ins System setzen. sakura hatte mal eine Funktion zum Löschen von benutzten Dateien vorgestellt. Die wurden nach dem Neustart gelöscht. Mit dem Umbenennen bzw. dem Einspielen einer neuen Version sollte das genauso klappen. In dem Fall zeigst du eine Box an, dass ein Neustart fällig ist, und gut. |
Re: Updatefunktion Regeln?!
Zitat:
Ich habe die notwendigen Informationen in einer INI-Datei hinterlegt. Sollte die unvollständig sein, wird ein Einstellungs-Dialog aufgerufen. |
Re: Updatefunktion Regeln?!
die ideen sind sehr interessant allerdings habe ich ein problem damit die ver. infos in dateien zu hinterlegen,
zwecks manipulation, da die software in meiner firma eingesetzt werden soll. daher möchte ich schon versuchen, diesen dialog zur konfiguration irgendwie in die exe zu hinterlegen welche auch nur durch den hotkey ausgelöst werden kann bzw. wenn jemand durch ich sage mal "zufall" den hotkey entdeckt nicht ohne passwort einstellungen einsehen oder ändern kann. zumal diese updates in geraumer zeit auch auf einem ftp liegen sollen und nicht jeder gleich die zugangsdaten lesen soll. 1. Versionsnummer mit Delphi direkt in die .EXE schreiben.. 2. Seperates Programm welches als "Starter" fungiert nutzen, wenn während des startens zb. Strg+Shift+C gedrückt wird kommt eine passwortabfrage, wenn richtig dann Form mit: - Server (TCP/IP, FTP, HTTP) - Pfad (\\Sofware\Update\) - Username - Passwort ich weiss das klingt vielleicht etwas kompliziert, aber falls es so klappen sollte lohnt sich die mühe hoffentlich... Danke |
Re: Updatefunktion Regeln?!
Die Versions-Info kannst du im Datum der Datei verschlüsseln. Du wärst nicht de rerste, der es so macht. M$ hat es auch schon so gemacht.
Ich habe auch schon gesehen, dass man die Versions-Info der EXE auslesen kann. Habe ich aber noch nicht probiert. Die Sache mit dem HotKey kannst du noch dadurch verschärfen, dass dieser nur solange wirksam ist, wie der SplashScreen angezeigt wird (nur so zum Beispiel). Alles andere müsste sich so lösen lassen, wie du dir das vorstellst. |
Re: Updatefunktion Regeln?!
Zitat:
|
Re: Updatefunktion Regeln?!
Zitat:
|
Re: Updatefunktion Regeln?!
@MathiasSimmack:
Eine Möglichkeit wäre noch das Datei-Datum. Ist aber vom End-Anwender auf dem Client manipulierbar. Mal sehen wie SKolberg das dann lösen wird. :zwinker: |
Re: Updatefunktion Regeln?!
gut werde die möglichkeiten mal ausprobieren, mal schauen was am besten klappt.
würdet ihr so nett sein mir ein paar howto´s mit code-schnipseln schreiben was für eine app ich als starter verwenden soll, wie das mit dem hotkey und den auslesen der ver. infos bzw generieren der prüfsummen geht, bin noch "etwas" unbeholfen in delphi... Mfg, Steve |
Re: Updatefunktion Regeln?!
Funktionen für Prüfsummen müsstest du im Forum einige finden. Auch ein paar Verschlüsselungsfunktionen treiben sich hier rum, wenn du die Zugangsdaten im Programm speichern willst.
Wenn du dich bspw. für XML entscheiden würdest (als Liste mit den zu aktualisierenden Dateien, usw.), da wäre eine entsprechende Funktion zum Auslesen recht schnell und einfach erledigt. Nimmst du sogar noch den XML-Parser von Microsoft, kannst du direkt per HTTP auf die Datei zugreifen, wenn sie auf einem entsprechenden Server liegt. Klappt vllt. sogar mit FTP, weiß ich aber nicht. Habe ich nie probiert. Und den Download kann man bspw. [cl="UrlDownloadToFile"]damit[/cl] machen. ![]() Alles in allem sollte sich damit ein recht Tool zusammenschrauben lassen. :mrgreen: |
Re: Updatefunktion Regeln?!
bedankt,
werde mich in ca. 2 tagen mal melden ob es geklappt hat oder nicht. habe im moment soviel zu tun das es mich immer wieder von delphi wegreisst (hasse das).. Gruss, Steve |
Re: Updatefunktion Regeln?!
Zitat:
|
Re: Updatefunktion Regeln?!
so hab gestern abend nochmal etwas getüdelt, hab aber probleme mit dem startprogramm.
was nehme ich da am besten? ne SDI anwendung wo in dem fenster nur ein bild zu sehen ist? und wie kann ich die konfiguration per "hotkey-drücken-während-ausführen" aufrufen?? |
Re: Updatefunktion Regeln?!
- Ich habe bei mir auch eine SDI genommen.
- BorderStyle auf bsNone gesetzt. - Zum Bild noch eine mitlaufende Uhr. Du solltest noch einen Timer einbauen, der z.B. 3 Sekunden läuft. In dieser Zeit hast du die Möglichkeit den HotKey zu drücken (z.B. als Action in einem TActionList. Da kann man HotKeys hinterlegen.). Nach Ablauf des Timers startet dann der Standard-Ablauf. Wenn du den HotKey drückst, nicht vergessen den Timer auszuschalten. Das wäre mein Lösungsvorschlag. |
Re: Updatefunktion Regeln?!
gut das sollte ich wohl hinbekommen,
zu der uhr kann man nicht stattdessen ein fortschrittsbalken verwenden der den status der updateprüfung zeigt besser nehmen? weil eine prüfung im lokalen netz dauert nur 1-2 sekunden aber übers netz... wenn ja wie? |
Re: Updatefunktion Regeln?!
Klar kannsat du auch einen Fortschrittsbalken nehmen. Ich hatte die Uhr nur, damit die DAUs sehen, dass das Programm nicht stehen bleibt :mrgreen:
Ich hatte nur Kopien übers LAN zu machen. Das dauert dann nur wenige Sekunden, wenn überhaupt. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:06 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz