29 votes

Où sont stockés les paramètres .NET en mode utilisateur ?

Je me demande quelle est la magie des fichiers .settings dans .NET. Imaginez que vous créez une assemblée appelée dans cet exemple SettingsHolder vous créez votre classe de paramètres qui est publique avec une chaîne à l'intérieur en mode utilisateur, puis vous compilez.

Maintenant vous faites référence à votre assembly dans MyApp, vous compilez puis vous pouvez changer la valeur dans votre application de votre paramètre avec la classe settings générée en SettingsHolder et les faire persister.

Maintenant, allez dans le répertoire de sortie de MyApp et il n'y a aucune trace de votre réglage (rien dans le fichier de configuration de l'application, rien dans l'assemblage, rien !)

Que se passe-t-il ? (J'ai essayé de déboguer les étapes du code source dans le code source .NET et dans le réflecteur pour voir ce qui se passe. LocalFileSettingsProvider (mais cela me semble bizarre parce qu'il n'y a rien dans MyApp.exe.config dans le répertoire de sortie).

39voto

ine Points 10065

Les fichiers de configuration sont stockés à un endroit différent pour chaque utilisateur. Pour les trouver, cliquez sur le menu démarrer, cliquez sur exécuter, et collez :

%USERPROFILE%\Local Settings\Application Data\

et appuyez sur la touche Entrée. Il y aura un dossier avec votre "nom de société" (quel qu'il soit dans votre assemblage) et ensuite d'autres sous-dossiers. Les paramètres sont stockés dans le fichier user.config.

Chemin complet :

%USERPROFILE%\Local Settings\Application Data\<Company Name>\
<appdomainname>_<eid>_<hash>\<verison>\user.config.

Dans Windows Vista et les versions plus récentes, ils sont stockés sous :

%USERPROFILE%\AppData\Local\

Plus d'informations :

1voto

MrCalvin Points 11

Sur OS >= Vista Je vais réclamer le fichier de réglage de l'utilisateur, il est situé ici :

%LOCALAPPDATA%\ votre entreprise \ nom de l'application \ .. \user.config

-3voto

Andrew Hare Points 159332

Le fichier de configuration est contenu dans l'assemblage compilé.

Edita:

Juste pour clarifier un peu. Le code pour get y set les paramètres du fichier sont compilés dans l'assemblage. Les valeurs elles-mêmes sont déplacées dans Program.exe.config donde Program est le nom de votre application. Reflector vous permettra de voir le code qui obtient et définit la valeur, y compris la clé codée en dur dans le fichier de configuration. Le fichier de configuration lui-même vous montrera la valeur et vous permettra de la modifier après la construction de l'application.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X