Est AppData maintenant la "bonne" place à installer par l'utilisateur des applications spécifiques (modifier leurs propres données)?
Je suis probablement juste être très épaisse, ici, mais il n'est pas clair pour moi, où je suis censé pour installer les "nouveaux" spécifiques à l'utilisateur de programmes sur Windows 7 (et sans doute Vista aussi, bien que je n'ai pas cherché spécifiquement à ce scénario encore).
Sous Windows XP (à juste titre ou à tort) nous avons toujours installé nos programmes dans des dossiers sous 'Program Files " et accepté qu'ils seraient de type de disposition de tout le monde. De ce que je peux rassembler sous Windows 7, je suis censé installer mon logiciel en vertu de l'utilisateur AppData dossier (éventuellement AppData\Local\Monappli). Que fait une mesure de bon sens, mais le fait que ce dossier est "cachée" par défaut signifie que nous allons avoir du "plaisir" de parler de nos utilisateurs à travers le soutien des trucs.
Je veux installer notre logiciel de sorte qu'il est spécifique à l'utilisateur (les Utilisateurs bits de Windows 7 est parfaitement logique) mais je ne veux pas que l'utilisateur puisse y accéder si nécessaire. Notre programme comprend également un "data" sous-répertoire dont il a besoin pour écrire alors qu'il est en cours d'exécution (base de données intégrée), mais comme le programme est destiné à être mono-utilisateur/autonome, le dossier de données étant à l'intérieur d'un utilisateur-dossier spécifique ne va pas être un problème.
Mon problème est juste que toute la "dossier caché" de la AppData. Autant que j'ai parcouraient la MSDN, je ne peux pas savoir où je suis censé installer par l'utilisateur des programmes spécifiques. Prise dans un sens, il semble être quelque chose comme AppData\Local\Monappli, et une autre façon, il semble être tout aussi valide en vertu de l'utilisateur Mes Documents\Monappli équivalent.
Quiconque a un guide clair pour savoir où tout ça va? J'ai trouvé la MSDN docs à confusion. 🙂
- Ah, je sais ce que tu veux dire. Mais j'ai un Mac-utilisateur depuis environ 4 ans maintenant et j'ai beaucoup apprécié la façon dont les choses comme cela sont fait "là-bas" - et j'ai l'impression que le plus de gens qui utilisent Windows correctement à l'avenir, plus nous aurons de chances de faire ce genre de choses " juste à travailler pour tout le monde dans l'avenir. De Plus, nous pouvons également être justement énervé avec Redmond la prochaine fois qu'ils font un balayage de changement arbitraire de quelque chose comme dossiers de demande (Gagner 8, anyone?)!!
Vous devez vous connecter pour publier un commentaire.
Pas vraiment.
AppData est, de façon surprenante, pour les données d'application, pas pour l'installation (Cliquez une Fois/des applications Silverlight de côté). Vous pouvez et devez encore installer dans Program Files, il suffit de ne vous attendez pas à écrire dans ce dossier.
Vous peut installez le logiciel dans AppData si vous souhaitez suivre un utilisateur dans un environnement Active Directory, ce qui arrive si vous le mettez dans AppData\Roaming (le
SpecialFolder.ApplicationData
emplacement).Vous pouvez aussi l'installer dans AppData si vous voulez que le logiciel à n'être accessible qu'à l'utilisateur qui l'installe. Cela peut être utile si, par exemple, vous avez plusieurs utilisateurs sur la même machine, qui veulent toutes exécuter différentes versions du logiciel dans un isolement complet.
Si vous voulez paramètres s'appliquent uniquement sur l'ordinateur local, puis vous utilisez AppData\Local, qui est
SpecialFolders.LocalApplicationData
- ce qui va faire d'ANNONCE administrateurs très heureux que le profil itinérant taille ne sera pas soudainement sauter jusqu'à 50 mo ou quelle que soit la taille de votre logiciel.Si vous souhaitez créer des paramètres qui s'appliquent à tous les utilisateurs, alors vous êtes à la recherche à
SpecialFolders.CommonApplicationData
Vous devez vous rappeler de ne jamais compter sur le nom du répertoire - localisation des questions de dire que cela peut changer et l'emplacement ne change pas avec les versions de système d'exploitation de deux. Vous devriez être en utilisant la dossier spécial de l'énumération dans vos logiciels, ou l'équivalent dans votre installateur.
Vous ne pourriez pas vous installer dans Program Files, mais l'utilisation AppData comme il est censé être utilisé, et de stocker votre base de données en y?
Windows 7 ajouté le FOLDERID_UserProgramFiles connue dossier et par défaut, il correspond à
%LOCALAPPDATA%\Programs
. Il est utilisé par MSI quand ALLUSERS=2 & MSIINSTALLPERUSER=1.Sur Vista et les versions antérieures n'est pas canonique par utilisateur dossier de l'application, mais seulement à l'aide de
%LOCALAPPDATA%
est assez commun. Malheureusement MSI va juste utiliser %ProgramFiles% sur ces systèmes.Windows 7 structure de dossier est profondément inspiré sur Unix structure:
Windows a plus de dossier, à l'instar de Mes Documents pour des fichiers dont le contenu produit par l'utilisateur, AppData Local et de l'Itinérance (Unix qui gère habituellement avec NFS).
Il est temps pour nous, les développeurs de commencer à utiliser ces structures. Nous devons séparer au moins des fichiers binaires qui n'ont pas besoin d'être répliquées, global et les paramètres de l'utilisateur.
Lorsqu'un programme d'installation avec l'installation d'une application, cette configuration doit s'attendre à avoir la permission d'écriture sur les Fichiers de Programme. Une fois l'installation terminée, les Fichiers de Programme doit être accessible en écriture seulement pour les autres configurations visant à mettre à jour les binaires pour les autres versions.
C'est 2019, et je viens d'installer le Code de Visual Studio (un produit Microsoft) dans le dossier par défaut de
C'est probablement pour se déplacer dans l'obligation de disposer d'un administrateur ou de l'invite UAC autoriser l'installation
S'il vous plaît installer les fichiers exécutables pour le dossier %programfiles% dans Windows - un MSI simples en fonction du package d'installation ne peut exécuter un programme d'installation active pour tout nouvel utilisateur qui ouvre une session sur la machine à créer de l'utilisateur fichiers et dossiers spécifiques dans leurs profils dossier %appdata%. Vous voyez ce comportement pour Internet Explorer, Adobe reader, etc. - C'est le petit programme d'installation MSI fenêtre qui apparaît la première fois que vous vous connectez à une machine qui a des applications installées. - Grâce - un système d'admin 🙂
Mon avis, pour ce que ça vaut, est que l'utilisateur programme spécifique pour les fichiers est juste des ennuis et est un putain de stupide chose à faire.
Beaucoup plus raisonnable est d'installer différentes versions de votre programme:
Je place ensuite un amorçage lanceur à:
Ensuite, l'utilisateur dossier de données d'application ne contiennent données, y compris un fichier INI/XML/fichier de Paramètres qui indique la version du programme que l'utilisateur travaille avec.
Une telle approche répond à la base locataire de conserver les données et l'exécution de code distincts, permet à chaque utilisateur d'exécuter une version spécifique du code, et offre une petite quantité de dé-duplication en assurant le même code exécutable n'est pas copié plusieurs fois sur les dossiers de l'utilisateur.
Sinon, aller droit de l'avant avec l'installation de programmes AppData et défaire les ans, il nous a fallu pour parvenir à nettoyer séparation du code et des données. J'ai trouvé ce fil parce que j'ai remarqué que le Chrome et DropBox sont code d'installation AppData. Je vais désinstaller le programme, et modifier les autorisations sur mon dossier AppData à exclure de l'exécution pour s'assurer que je peut facilement repérer d'autres programmes de tenter de faire la même BS.
%ProgramFiles%
que ce soit! Avant même de contrôle de compte d'utilisateur, de mettre les fichiers de configuration et les données de l'application dans le dossier de l'application a été mauvaise pratique! (Même si c'était extrêmement commun.)