Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Programmupdate unter Vista, wie machen ? (https://www.delphipraxis.net/85962-programmupdate-unter-vista-wie-machen.html)

hoika 7. Feb 2007 08:51


Programmupdate unter Vista, wie machen ?
 
Hallo #,

ich habe bei meinem Programm ein automatisches Update
mehrerer Rechner eines Netzwerkes wie folgt gelöst:

- auf dem Server wird die neueste Version kopiert
auf ein freigegebenen Ordner
- die Clients starten nicht die eigentlich Exe,
sondern ein kleines Hilfsprogramm
- dass kuckt auf dem Server nach, ob eine neue Version
vorliegt (Versionsnummer in den Resorucen),
wenn ja wird diese kopiert und gestartet,
wenn nicht, wird die aktuelle exe gestartet

Das klappt soweit ganz gut, abgesehen vom Schreibschutz
des Programme-Ordners unter XP
(den ich dann immer rausnehme bei meinem Verzeichnis...)

Das klappt unter Vista natürlich nicht mehr.
MS hat hier 2 Wege vorgeschlagen.

1. Ein Dienst auf den Clients, der das Update durchführt
(UAC-Benutzerkontensteuerung wird dort nicht benutzt)

2. MPP-Dateien (oder so ähnlich)
Das sind Patch-Dateien zu MSI.
Die eigentliche MSI muss dann aber ein gültiges Zertifikat aufweisen.

Punkt 2 wird empfohlen,
weil ja ein Dienst wieder Lücken auressit.

Da meine Exe über Installshield installiert wird,
ich von MPP keine Ahnung habe.


In Dienstprogrammierung hatte ich mich mal eingearbeitet,
war mit der Hilfe von hier ( ;) ) nicht so schwer.

Wie würde denn die Kommunikation aussehen mit dem Dienst aussehen ?
Übergabe wäre Zielpfad (c:\programme\meineapp\), es könnte aber z.B. ja auch d: sein.
Ausserdem der Quellpfad (also der Netzwerkpfad).
Die Update muss auch mehrere Daten übertragen können (hintereinanderweg).

Wie macht man so eine Kommunikation ?


Danke im voraus



Heiko

Phoenix 7. Feb 2007 09:38

Re: Programmupdate unter Vista, wie machen ?
 
Im Prinzip hast Du schon alles was Du benötigst.

Das, was Dein Zusatzprogramm macht (nachgucken ob eine neue Version da ist & ggf. kopieren) packst Du in den Dienst.

Beim Programmstart schickst Du eine Anfrage an den Dienst (via Hier im Forum suchenNamed Pipe) und fragst dort nach, ob es eine neue Version gibt. Wenn ja, wartest und lässt den Dienst erstmal neu kopieren. Wenn dann vom Dienst die message kommt "Ist alles kopiert", dann startest Du erst die .exe.

Wie gesagt: Du brauchst eigentlich nur die Nachrichten: "Ist was neues da?" - ja/nein und wenn ja warten auf "Ist fertig kopiert!". Und dazu eben die named pipes.

NicoDE 7. Feb 2007 10:42

Re: Programmupdate unter Vista, wie machen ?
 
Würde es das ganze nicht vereinfachen, wenn du für das Update eine eigene Exe startest, welche im Manifest 'requiresAdministrator' stehen hat?
Das Update könnte dann nur von Admins ausgeführt werden (verursacht natürlich auch eine UAC-Abfrage für das Update, falls UAC aktiv ist).

mschaefer 7. Feb 2007 11:27

Re: Programmupdate unter Vista, wie machen ?
 
Gibt es bei Vista eigentlich immernoch keine Softwareverteilung im System? // Martin

hoika 7. Feb 2007 20:57

Re: Programmupdate unter Vista, wie machen ?
 
Hallo,

das Update soll ohne UAC-Eingriff laufen,
die Nutzer haben genug anderes zu tun,
und wenn der Admin zu jedem Rechner rennen soll
fürs Update, kann ich das gleich vergesen.

> Martin <
in der neuen dot.net steht was dazu
Desired State Initiative (S17/28)

ist aber immer noch nicht so richtig fertsch


Heiko


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