Lorsque vous utilisez un fichier Settings.settings dans .NET, où la configuration est-elle réellement stockée? Je souhaite supprimer les paramètres enregistrés pour revenir à l'état par défaut, mais je ne trouve pas où il est stocké… des idées?
Cela dépend si le paramètre que vous avez choisi se situe dans la portée "Utilisateur" ou "Application".
Les paramètres de portée de l'utilisateur sont stockés dans
C:\Documents and Settings \ username \ Paramètres locaux\Données d'application \ Nom de l'application
Vous pouvez les lire/écrire au moment de l'exécution.
Pour Vista et Windows 7, le dossier est
C:\Utilisateurs \ username \ AppData\Local \ Nom de l'application
ou
C:\Utilisateurs \ username \ AppData\Roaming \ Nom de l'application
Les paramètres de l’application sont enregistrés dans AppName.exe.config
et ils sont en lecture seule au moment de l'exécution.
Voici l'extrait que vous pouvez utiliser pour obtenir par programme l'emplacement du fichier user.config:
public static string GetDefaultExeConfigPath(ConfigurationUserLevel userLevel)
{
try
{
var UserConfig = ConfigurationManager.OpenExeConfiguration(userLevel);
return UserConfig.FilePath;
}
catch (ConfigurationException e)
{
return e.Filename;
}
}
ApplicationSettings (c'est-à-dire settings.settings) utilise PerUserRoamingAndLocal pour les paramètres utilisateur par défaut (comme je m'en suis souvenu).
Mise à jour: Étrange mais il y a trop de réponses incorrectes ici. Si vous recherchez votre fichier de paramètres d’utilisateur scoped (user.config), il se trouvera dans le dossier suivant (pour Windows XP):
C:\Documents and Settings\(nom d'utilisateur)\Paramètres locaux\Application Data\(nom-société-si-existe)\(nom-app) .exe_ (URL | Nom fort) _ (hachage)\(version-app) \
Url ou StrongName dépend de votre candidature ou non du nom fort de l’assemblage.
En supposant que vous parlez de bureau et non d'applications Web:
Lorsque vous ajoutez des paramètres à un projet, VS crée un fichier nommé app.config
Dans votre répertoire de projet et enregistre les paramètres dans ce fichier. Il crée également le fichier Settings.cs
Qui fournit les accesseurs statiques aux paramètres individuels.
Au moment de la compilation, VS copiera (par défaut; vous pouvez changer cela) le app.config
Dans le répertoire de construction, en changeant son nom pour correspondre à l’exécutable (par exemple, si votre exécutable est nommé foo.exe
, Le Le fichier sera nommé foo.exe.config
), qui correspond au nom que le gestionnaire de configuration .NET recherche lorsqu'il récupère les paramètres au moment de l'exécution.
Si vous modifiez un paramètre via l'éditeur de paramètres du VS, il mettra à jour à la fois app.config
Et Settings.cs
. (Si vous examinez les accesseurs de propriété dans le code généré dans Settings.cs
, Vous verrez qu'ils sont marqués avec un attribut contenant la valeur par défaut du paramètre figurant dans votre fichier app.config
. ) Si vous modifiez un paramètre en modifiant directement le fichier app.config
, Settings.cs
Ne sera pas mis à jour, mais la nouvelle valeur sera toujours utilisée par votre programme lors de son exécution, car app.config
Est copié dans foo.exe.config
Au moment de la compilation. Si vous désactivez cette option (en définissant les propriétés du fichier), vous pouvez modifier un paramètre en modifiant directement le fichier foo.exe.config
Dans le répertoire de construction.
Il existe ensuite des paramètres définis pour l'utilisateur.
Les paramètres d'application sont en lecture seule. Votre programme peut modifier et enregistrer les paramètres de la portée de l'utilisateur, permettant ainsi à chaque utilisateur de disposer de ses propres paramètres. Ces paramètres ne sont pas stockés dans le fichier foo.exe.config
(Car sous Vista, au moins, les programmes ne peuvent écrire dans aucun sous-répertoire de Program Files
Sans élévation); ils sont stockés dans un fichier de configuration dans le répertoire de données de l'application de l'utilisateur.
Le chemin d'accès à ce fichier est %appdata%\%publisher_name%\%program_name%\%version%\user.config
, Par exemple. C:\Users\My Name\AppData\Local\My_Company\My_Program.exe\1.0.0\user.config
. Notez que si vous avez attribué un nom fort à votre programme, celui-ci sera ajouté au nom du programme dans ce chemin.
En cherchant sur le hachage dans le nom du dossier, je suis tombé sur (via cette réponse ):
http://blogs.msdn.com/b/rprabhu/archive/2005/06/29/433979.aspx
(edit: lien Wayback Machine: https://web.archive.org/web/20160307233557/http://blogs.msdn.com:80/b/rprabhu/archive/2005/06/29/433979 .aspx )
Le chemin exact du
user.config
Les fichiers ressemblent à ceci:
<Profile Directory>\<Company Name>\<App Name>_<Evidence Type>_<Evidence Hash>\<Version>\user.config
où
<Profile Directory>
- correspond au répertoire du profil itinérant ou au répertoire local. Les paramètres sont stockés par défaut dans le répertoire localuser.config
fichier. Pour stocker un paramètre dans le roaminguser.config
, vous devez marquer le paramètre avec leSettingsManageabilityAttribute
avecSettingsManageability
défini surRoaming
.
<Company Name>
- est généralement la chaîne spécifiée parAssemblyCompanyAttribute
(avec l’avertissement que la chaîne est échappée et tronquée selon les besoins, et si elle n’est pas spécifiée dans l’Assembly, nous avons une procédure de secours).
<App Name>
- est généralement la chaîne spécifiée parAssemblyProductAttribute
(mêmes mises en garde que pour le nom de la société).
<Evidence Type>
et<Evidence Hash>
- informations dérivées de la preuve de domaine d'application pour fournir un domaine d'application approprié et un isolement d'assemblage.
<Version>
- généralement la version spécifiée dansAssemblyVersionAttribute
. Cela est nécessaire pour isoler différentes versions de l'application déployée côte à côte.Le nom du fichier est toujours simplement '
user.config
'.
Euh, ne pouvez-vous pas simplement utiliser Settings.Default.Reset () pour restaurer vos paramètres par défaut?
Il se trouve dans un dossier portant le nom de votre application dans le dossier Données d'application du dossier de base de l'utilisateur (C:\documents et paramètres\utilisateur sous xp et c:\utilisateurs\utilisateur sous Windows Vista).
Il y a quelques informations ici aussi.
PS: - essayez d'y accéder par% appdata% dans la boîte d'exécution!
Tous vos paramètres sont stockés dans le fichier .config correspondant.
Le fichier .settings fournit simplement une classe fortement typée pour un ensemble de paramètres communs, mais les paramètres réels sont stockés dans app.config ou dans un fichier .config dans votre application.
Si vous ajoutez un fichier .settings, un fichier app.config sera automatiquement ajouté pour héberger les paramètres si vous n'en avez pas déjà un.
Si votre fichier de paramètres se trouve dans une application Web, il figurera dans le fichier web.config (juste en dessous de votre projet. S'ils se trouvent dans un autre type de projet, ils figureront dans le fichier app.config (également sous votre projet). .
Éditer
Comme indiqué dans les commentaires: les paramètres de votre application au moment du design se trouvent dans un fichier app.config pour des applications autres que les applications Web. Lorsque vous compilez, le fichier app.config est copié dans le répertoire de sortie et porte le nom votrenom . Exe.config. Au moment de l'exécution, seul le fichier nommé yourexename.exe.config sera lu.
Deux fichiers: 1) Un fichier app.config ou web.config. Les paramètres peuvent être personnalisés après la construction avec un éditeur de texte. 2) Le fichier settings.designer.cs. Ce fichier contient du code généré automatiquement pour charger le paramètre à partir du fichier de configuration, mais une valeur par défaut est également présente au cas où le fichier de configuration ne possède pas ce paramètre particulier.
Je sais que vous avez déjà répondu à cette question, mais ne pouvez-vous pas synchroniser les paramètres dans le concepteur de paramètres pour revenir aux paramètres par défaut?