Lors de l'utilisation d'un des Paramètres.fichier de configuration in.NET, où la configuration est-elle réellement stockée?

lors de L'utilisation d'un paramétrage.paramètres fichier dans .NET, où la configuration est-elle réellement stockée? Je veux supprimer les paramètres sauvegardés pour revenir à l'état par défaut, mais je ne peux pas trouver où ils sont stockés... des idées?

87
demandé sur Adam Haile 2009-07-02 19:55:23

10 réponses

cela dépend si le paramètre que vous avez choisi est" User "scope ou" Application " scope.

"151960920 de l'Utilisateur" champ d'application

les paramètres de portée de L'utilisateur sont stockés dans

C:\Documents and Settings\ username \Local Settings\Application Data\ ApplicationName

vous pouvez les lire/écrire à l'exécution.

pour Vista et Windows 7, le dossier est

C:\Users\ username \AppData\Local\ ApplicationName

ou

C:\Users\ username \AppData\Roaming\ ApplicationName

champ d'Application

de l'Application les paramètres de scope sont enregistrés dans AppName.exe.config et ne sont lus qu'à l'exécution.

89
répondu SolutionYogi 2018-01-23 13:38:46

Voici l'extrait que vous pouvez utiliser pour programmatically get user.emplacement du fichier de configuration:

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 les paramètres.paramètres) utilisez PerUserRoamingAndLocal pour les paramètres utilisateur par défaut (comme je me suis souvenu).

mise à Jour: Étrange, mais il y a trop de mauvaises réponses ici. Si vous êtes à la recherche de Vous fichier de paramètres scoped de l'utilisateur (utilisateur.config), il sera situé dans le dossier suivant (pour Windows XP):

C:\Documents et Paramètres\(nom d'utilisateur)\Local Paramètres\Application Data\(société-nom-si-existe)\(app-name).exe_ (Url / StrongName) _ (hash)\(app-version)\

Url ou StrongName dépend de AVEZ-VOUS application assembly strong name ou non.

47
répondu arbiter 2010-07-03 08:11:20

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 stocke les paramètres dans ce fichier. Il construit é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 compilation, en changeant son nom pour correspondre à l'exécutable (par exemple , si votre exécutable est nommé foo.exe , le fichier sera nommé foo.exe.config ), qui est le nom que recherche le gestionnaire de configuration .NET lorsqu'il récupère les paramètres à l'exécution.

si vous changez un paramètre par le biais de L'éditeur de paramètres VS, il mettra à jour à la fois app.config et Settings.cs . (Si vous regardez 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 qui se trouve dans votre fichier app.config . Si vous modifiez un paramètre en éditant le fichier app.config directement, Settings.cs ne sera pas mis à jour, mais la nouvelle valeur sera toujours utilisée par votre programme lorsque vous l'exécuterez, car app.config sera copié sur 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 éditant directement le fichier foo.exe.config dans le répertoire de compilation.

puis il l'utilisateur se trouvent dans l'étendue des paramètres.

Application-les paramètres de portée sont en lecture seule. Votre programme peut modifier et enregistrer l'utilisateur-paramètres d'étendue, permettant ainsi à chaque utilisateur dispose de ses propres paramètres. Ces paramètres ne sont pas stockés dans le fichier foo.exe.config (puisque sous Vista, au moins, les programmes ne peuvent pas écrire dans n'importe quel 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 à cette le fichier est %appdata%\%publisher_name%\%program_name%\%version%\user.config , p.ex. C:\Users\My Name\AppData\Local\My_Company\My_Program.exe.0.0\user.config . Notez que si vous avez donné à votre programme un nom fort, le nom fort sera ajouté au nom du programme dans ce chemin.

16
répondu Robert Rossney 2009-07-02 16:28:43

en parcourant les alentours pour comprendre le hachage dans le nom du dossier, je suis tombé (via cette réponse ):

http://blogs.msdn.com/b/rprabhu/archive/2005/06/29/433979.aspx

le chemin exact des fichiers user.config ressemble à quelque chose comme ceci:

<Profile Directory>\<Company Name>\<App Name>_<Evidence Type>_<Evidence Hash>\<Version>\user.config

<Profile Directory> est soit le profil itinérant répertoire ou local. Les paramètres sont stockés par défaut dans le fichier local user.config . Pour stocker un paramètre dans le fichier roaming user.config , vous devez marquer le paramètre avec le SettingsManageabilityAttribute avec SettingsManageability défini à Roaming .

<Company Name> - est typiquement la chaîne spécifiée par le AssemblyCompanyAttribute (avec la mise en garde que la chaîne est échappée et tronquée comme nécessaire, et si non spécifié sur l'assemblée, nous avons une procédure de secours).

<App Name> - est typiquement la chaîne de caractères spécifiée par le AssemblyProductAttribute (mêmes mises en garde que pour la dénomination sociale).

<Evidence Type> et <Evidence Hash> - information dérivée de la preuve de domaine app pour fournir le domaine app approprié et l'isolation de l'assemblage.

<Version> - typiquement la version spécifiée dans le AssemblyVersionAttribute . Cela est nécessaire pour isoler différentes versions de l'application déployée côté par côté.

le nom du fichier est toujours simplement user.config .

10
répondu seeker 2017-05-23 12:17:26

Erm, ne pouvez-vous pas seulement utiliser les paramètres.Défaut.Reset() pour restaurer vos paramètres par défaut?

3
répondu Kildareflare 2010-02-04 16:52:56

il est dans un dossier avec le nom de votre application dans le dossier des données de L'Application dans le dossier d'accueil de L'utilisateur (C:\documents et paramètres\user Sur xp et c:\users\user sous Windows Vista).

Il y a quelques informations ici aussi.

PS: - essayez d'y accéder par %appdata% dans run box!

2
répondu TheVillageIdiot 2010-07-03 08:12:27

tous vos paramètres sont stockés dans les respectifs .fichier de configuration.

The .fichier de paramètres fournit simplement une classe fortement typée pour un ensemble de paramètres qui vont ensemble, mais les paramètres sont stockés dans l'application.config ou un .fichier de configuration dans votre application.

Si vous ajoutez un .le fichier de paramètres d'une application.config sera automatiquement ajouté pour héberger les paramètres si vous n'en avez pas déjà un.

1
répondu Praveen Angyan 2009-07-02 16:01:21

Si votre fichier de paramètres est dans une application web, ils seront dans le web.fichier de configuration (juste en dessous de votre projet. S'ils sont dans un autre type de projet, ils seront dans l'application.fichier de configuration (également sous votre projet).

Modifier

comme il est souligné dans les commentaires: vos paramètres d'application design time sont dans une application.fichier de configuration pour les applications autres que les applications web. Lorsque vous générez l'application.fichier de configuration est copié dans le répertoire de sortie, et sera nommé yourexename .EXE.config. À l'exécution, seul le fichier nommé yourexename.EXE.config sera lu.

1
répondu JMarsch 2014-02-18 14:08:01

deux fichiers: 1) une application.config ou web.fichier de configuration. Ses paramètres peuvent être personnalisés après la compilation avec un éditeur de texte. 2) les réglages.designer.cs fichier. Ce fichier a du code autogénéré pour charger le paramètre à partir du fichier de configuration, mais une valeur par défaut est également présente dans le cas où le fichier de configuration n'a pas le paramètre particulier.

0
répondu Frank Schwieterman 2009-07-02 16:08:24

je sais qu'il est déjà répondu, mais ne pourriez-vous pas simplement synchroniser les paramètres dans le concepteur de paramètres pour revenir à vos paramètres par défaut?

0
répondu jrsconfitto 2010-07-03 08:09:41