Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Wo Programmupdate hinspeichern (https://www.delphipraxis.net/198521-wo-programmupdate-hinspeichern.html)

freimatz 9. Nov 2018 15:43

Wo Programmupdate hinspeichern
 
Hallo,
ich möchte aus meinem Programm ein Update vom Internet downloaden, lokal speichern und dann starten.
Wo speichere ich das am Besten ab, so dass das am Besten läuft? Mit wo meine ich sowas wie %Temp%, %AppData% oder ähnlichem.
Bei meinem Prototyp speichere ich das momentan in einen Ordner unterhalb meiner Exe. Ein Tester meldet jedoch das Update würde nicht starten. Ich vermute ein Rechteproblem.

DieDolly 9. Nov 2018 16:24

AW: Wo Programmupdate hinspeichern
 
Für sowas ist meiner Meinung nach das temporäre Verzeichnis die beste Wahl. Updatedateien haben in AppData nichts zu suchen.
Das Programmverzeichnis ist auch eine gute Wahl. Nur dann muss man sicherstellen, dass das Programm zumindest als Administrator gestartet wurde. Die meisten Probleme sind dann schon weg.

hoika 9. Nov 2018 16:48

AW: Wo Programmupdate hinspeichern
 
Hallo,
Zitat:

in einen Ordner unterhalb meiner Exe
Wo liegt denn die Exe?

Schokohase 9. Nov 2018 18:56

AW: Wo Programmupdate hinspeichern
 
Für die lokale Installation sollte man sich für einen Ordner unterhalb von %LOCALAPPDATA% (idR. = %USERPROFILE%\AppData\Local) entscheiden. Das kann auch der %TEMP% (idR. = %LOCALAPPDATA%\Temp) Ordner sein, oder man erstellt einfach einen dedizierten Ordner %LOCALAPPDATA%\<company>\<Product>\Updates dafür.

%APPDATA% (idR. = %USERPROFILE%\AppData\Roaming) eignet sich wegen dem Roaming (kommt bei Betrieb in einer Domain zum Tragen) nicht so gut dafür.

Luckie 9. Nov 2018 19:06

AW: Wo Programmupdate hinspeichern
 
Zitat:

Zitat von hoika (Beitrag 1417758)
Hallo,
Zitat:

in einen Ordner unterhalb meiner Exe
Wo liegt denn die Exe?

Die Antwort ist unerheblich. Man weiß nie, wohin der Benutzer die Anwendung hin installiert. Man muss vom schlimmst möglichen Fall ausgehen. Und der wäre, wenn der Benutzer keine schreibrechte in einem Ordner hat zum Speichern des Updates. Zumindest speichern sollte ohne Adminrechte gehen. Wenn dann das Update angestoßen wird, kann das Update nach Adminrechten fragen.

haentschman 10. Nov 2018 06:19

AW: Wo Programmupdate hinspeichern
 
Zitat:

man erstellt einfach einen dedizierten Ordner %LOCALAPPDATA%\<company>\<Product>\Updates dafür.
+:thumb:
...nur heißt er bei mir SYSTEM, statt Updates, weil noch andere systemrelevate Sachen drin sind. 8-) Der Name ist ja wurscht, der Platz ist entscheidend. Den User Ordner halte ich nicht gut. Da sollten nur die Daten drin sein, die dieser User für sich benötigt.

Schokohase 10. Nov 2018 06:42

AW: Wo Programmupdate hinspeichern
 
Zitat:

Zitat von haentschman (Beitrag 1417784)
Zitat:

man erstellt einfach einen dedizierten Ordner %LOCALAPPDATA%\<company>\<Product>\Updates dafür.
+:thumb:
...nur heißt er bei mir SYSTEM, statt Updates, weil noch andere systemrelevate Sachen drin sind. 8-) Der Name ist ja wurscht, der Platz ist entscheidend. Den User Ordner halte ich nicht gut. Da sollten nur die Daten drin sein, die dieser User für sich benötigt.

Also doch nicht %LOCALAPPDATA%\<company>\<Product>\Updates?

Denn da idR folgendes gilt
Code:
%LOCALAPPDATA% => %USERPROFILE%\AppData\Local
%USERPROFILE% => %HOMEDRIVE%\Users\%USERNAME%
befürwortest du die Verwendung dieses Ordners und gleichzeitig lehnst du diesen ab. Das ist etwas verwirrend.

haentschman 10. Nov 2018 07:46

AW: Wo Programmupdate hinspeichern
 
Moin...:P
Zitat:

befürwortest du die Verwendung dieses Ordners
...ähmmm, sorry. 8-)
Es ist noch früh am Morgen und zu wenig Koffein. Ich meinte %APPDATA% oder umgangssprachlich ProgramData (gemeinsam für alle User).

Schokohase 10. Nov 2018 08:07

AW: Wo Programmupdate hinspeichern
 
Zitat:

Zitat von haentschman (Beitrag 1417787)
Moin...:P
Zitat:

befürwortest du die Verwendung dieses Ordners
...ähmmm, sorry. 8-)
Es ist noch früh am Morgen und zu wenig Koffein. Ich meinte %APPDATA% oder umgangssprachlich ProgramData (gemeinsam für alle User).

Das sind aber zwei Paar Schuhe.

Bei mir lösen sich diese wie folgt auf:
Code:
%APPDATA% => APPDATA=C:\Users\Schokohase\AppData\Roaming
%ProgramData% => C:\ProgramData
Wenn der Benutzer das Update anstösst, dann sollten die Daten mMn in einen Ordner unterhalb von
Code:
%LOCALAPPDATA% => C:\Users\Schokohase\AppData\Local
wandern und von dort ausgeführt werden. Das wird dann immer funktionieren, selbst wenn sich der Benutzer mit n anderen Benutzern auf einem Terminal-Server tummelt. Der Ordner ist nur für ihn selber und es gibt keine Überschneidungen mit anderen Benutzern.

Die Installation selber kann man dann leicht per Mutex systemweit einzigartig machen. Worst Case können also n Benutzer das Update anstossen, aber nur einer kann es erfolgreich ausführen (wegen dem Mutex).

haentschman 10. Nov 2018 08:13

AW: Wo Programmupdate hinspeichern
 
Zitat:

Das sind aber zwei Paar Schuhe.
...ich merke schon, die %..% Order sind nicht meine Welt. :oops: Ich meinte explizit ProgramData...ich hole mir jetzt mal Kaffee. :wink:


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:51 Uhr.
Seite 1 von 3  1 23      

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