it-swarm.com.de

Ist AppData jetzt der richtige Ort, um benutzerspezifische Apps zu installieren (die ihre eigenen Daten ändern)?

Ich bin hier wahrscheinlich nur sehr dick, aber mir ist nicht klar, wo ich "neue" benutzerspezifische Programme unter Windows 7 installieren soll (und vermutlich auch Vista, obwohl ich mir dieses Szenario noch nicht genauer angesehen habe).

Unter Windows XP (zu Recht oder zu Unrecht) haben wir unsere Programme immer in Ordnern unter 'Programmdateienund akzeptierte, dass sie irgendwie für alle verfügbar sein würden. Nach dem, was ich unter Windows 7 sammeln kann, soll ich meine Software unter dem Benutzer installieren Anwendungsdaten Ordner (möglicherweise AppData\Local\MyApp). Das macht einen gewissen Sinn, aber die Tatsache, dass dieser Ordner standardmäßig "versteckt" ist, bedeutet, dass wir "Spaß" haben werden, wenn wir unsere Benutzer über Support-Dinge unterhalten.

Ich möchte unsere Software so installieren, dass sie benutzerspezifisch ist (das Benutzer-Bit in Windows 7 ist absolut sinnvoll), möchte jedoch, dass der Benutzer bei Bedarf darauf zugreifen kann. Unser Programm enthält auch ein 'data'-Unterverzeichnis, in das es während des Betriebs geschrieben werden muss (eingebettete Datenbank). Da das Programm jedoch für Einzelbenutzer/Standalone gedacht ist, befindet sich der Datenordner nicht in einem benutzerspezifischen Ordner wird ein Problem sein.

Mein Problem ist nur der ganze "versteckte Ordner" Aspekt von AppData. So oft ich den MSDN durchsucht habe, kann ich nicht herausfinden, wo ich sonst benutzerspezifische Programme installieren soll. Auf eine Art und Weise scheint es so etwas wie zu sein AppData\Local\MyAppund auf eine andere Weise scheint es unter dem Benutzer genauso gültig zu sein Meine Dokumente\MyApp Äquivalent.

Hat jemand eine klare Anleitung, wohin das alles führt? Ich fand die MSDN-Dokumente verwirrend. :-)

30
robsoft

Nicht wirklich.

Das Verzeichnis, das als allgemeines Repository für anwendungsspezifische Daten für den aktuellen Roaming-Benutzer dient.

AppData ist überraschenderweise für Anwendungsdaten und nicht für die Installation vorgesehen (Klicken Sie auf "Einmal/Silverlight-Anwendungen"). Sie können und sollten trotzdem in Programme installieren, erwarten Sie aber nicht, in diesen Ordner zu schreiben.

Sie können can Software in AppData installieren, wenn ein Benutzer in einer Active Directory-Umgebung nachverfolgt werden soll. Dies geschieht, wenn Sie ihn in AppData\Roaming (den SpecialFolder.ApplicationData-Speicherort) ablegen. 

Sie können auch in AppData installieren, wenn die Software nur dem Benutzer zur Verfügung stehen soll, der sie installiert. Dies kann nützlich sein, wenn Sie zum Beispiel mehrere Benutzer auf demselben Computer haben, die alle unterschiedliche Versionen der Software isoliert ausführen möchten.

Wenn Sie möchten, dass die Einstellungen nur auf dem lokalen Computer gelten, verwenden Sie AppData\Local. Dies ist SpecialFolders.LocalApplicationData. Dies macht AD-Administratoren sehr glücklich, da die Größe des servergespeicherten Profils nicht plötzlich um 50 MB oder die Größe Ihrer Software ansteigt.

Wenn Sie Einstellungen erstellen wollten, die für alle Benutzer gelten, sehen Sie unter SpecialFolders.CommonApplicationData

Denken Sie daran, sich niemals auf den tatsächlichen Namen des Verzeichnisses zu verlassen. Aufgrund von Lokalisierungsproblemen kann sich dies ändern, und der Speicherort ändert sich bei zwei Betriebssystemversionen. Sie sollten die special-Ordneraufzählung in Ihrer Software oder die Entsprechung in Ihrem Installationsprogramm verwenden.

Könnten Sie nicht in Programme installieren, sondern AppData verwenden, wie es verwendet werden soll, und Ihre Datenbank dort speichern?

23
blowdart

Windows 7 hat den Ordner FOLDERID_UserProgramFiles known hinzugefügt und standardmäßig %LOCALAPPDATA%\Programs zugeordnet. Dies wird von MSI verwendet, wenn ALLUSERS = 2 & MSIINSTALLPERUSER = 1 ist.

Unter Vista und früheren Versionen gibt es keinen kanonischen Anwendungsordner für jeden Benutzer. Die Verwendung von %LOCALAPPDATA% ist jedoch üblich. Leider verwendet MSI nur % ProgramFiles% auf diesen Systemen. 

14
Anders

Die Windows 7-Ordnerstruktur ist stark an die Unix-Struktur angelehnt:

/usr/ -> C:\Program Files\ -> binaries: executables and dynamically linked
/etc/ -> C:\ProgramData\ -> global settings
/home/ -> C:\Users\ -> a folder for each user
~/.* -> C:\Users\Hikari\AppData\Roaming\ -> settings for each user

Windows verfügt über mehr Ordner, z. B. Eigene Dateien für Dateien mit Inhalten, die vom Benutzer erstellt wurden, AppData Local und Roaming (die von Unix normalerweise mit NFS behandelt werden).

Es ist an der Zeit, dass wir Entwickler diese Strukturen nutzen. Wir müssen mindestens Binärdateien trennen, die nicht repliziert werden müssen, globale Einstellungen und Benutzereinstellungen.

Wenn ein Setup eine App installiert, sollte dieses Setup die Berechtigung zum Schreiben von Programmen haben. Nach Abschluss des Setups sollten Programmdateien nur für andere Setups schreibbar sein, mit denen Binärdateien auf andere Versionen aktualisiert werden sollen.

5
Hikari

Installieren Sie die ausführbaren Dateien im Ordner% programfiles% in Windows. Ein einfaches, auf MSI basierendes Installationspaket kann für jeden neuen Benutzer, der sich an der Maschine anmeldet, ein aktives Setup für die benutzerspezifischen Dateien und Ordner im Ordner% appdata% des Profils erstellen. Sie sehen dieses Verhalten für Internet Explorer, Adobe Reader usw. - Dies ist das kleine Fenster des MSI-Installationsprogramms, das beim ersten Anmelden an einem Computer angezeigt wird, auf dem diese Anwendungen installiert sind. - Danke - ein Systemadministrator :)

0
AndyAdminCheese

Es ist 2019 und ich habe gerade Visual Studio Code (ein Microsoft-Produkt) im Standardordner von installiert 

%userprofile%\AppData\Local\Programs\Microsoft VS Code

Dies ist wahrscheinlich der Fall, um die Anforderung zu umgehen, dass ein Administrator oder eine Benutzerkontensteuerung die Installation autorisieren muss

0
Paiman Roointan