IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

Fichiers .settings et fichiers .config


Sujet :

C#

  1. #1
    Membre actif Avatar de tssi555
    Analyse système
    Inscrit en
    Juillet 2008
    Messages
    594
    Détails du profil
    Informations professionnelles :
    Activité : Analyse système

    Informations forums :
    Inscription : Juillet 2008
    Messages : 594
    Points : 295
    Points
    295
    Par défaut Fichiers .settings et fichiers .config
    Bonjour,

    J'ai quelques questions à propos des fichiers susmentionnés.

    J'avais déjà posté une question à ce propos, mais qui n'était pas claire. la réponse ne répondait pas vraiment à ma question non plus.

    Ce que je veux faire :
    - donner à l'utilisateur la possibilité d'écrire (modifier des paramètres...) dans un fichier xml, lequel ? .config ou .setting ?

    Ce que j'ai déjà fait :
    - dans un bouton, j'ai mis simplement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
                Properties.Settings.Default.Test= "Nouvelle Valeur test";
                Properties.Settings.Default.Save();
    Cela ne s’enregistre pas dans le fichier "app.config" présent dans le dossier de l'application. cela ne s'enregistre pas non plus dans le fichier "NomDuProgramme.exe.config".

    - J'ai testé avec la classe Configuration et ConfigurationManager..., mais cela crée des "Clef/Valeur" avec des sections dans le fichier xml..., ce n'est pas ce que je cherche.

    Je veux juste mettre à jour et sauvegarder les valeurs présentes dans l'xml , .config ou .setting peut importe à partir d'un simple bouton. est ce possible ? comment faire ?

    D'autre part, on en trouve une paire de fichiers de ce style dans les répertoires de l'application :
    - NomDuProgramme.vshost.exe.Config
    - NomDuProgramme.exe.Config
    - app.config

    Quel est le rôle de chaque fichier, et pourquoi les données ne se mettent pas automatiquement à jour dans les autres fichiers en parallèle ?

    D'avance merci.

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 753
    Points
    39 753
    Par défaut
    Citation Envoyé par tssi555 Voir le message
    - donner à l'utilisateur la possibilité d'écrire (modifier des paramètres...) dans un fichier xml, lequel ? .config ou .setting ?
    Le fichier .settings ne sert que pendant le développement : c'est celui où sont déclarés les paramètres. A partir de ce fichier, Visual Studio fait 2 choses:
    - Il ajoute au fichier app.config les paramètres de scope "application" (app.config est renommé NomDeLExe.config dans le répertoire de sortie)
    - il génère une classe pour accéder aux paramètres de façon fortement typée


    Citation Envoyé par tssi555 Voir le message
    Ce que j'ai déjà fait :
    - dans un bouton, j'ai mis simplement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
                Properties.Settings.Default.treatement = "Nouvelle Valeur test";
                Properties.Settings.Default.Save();
    Cela ne s’enregistre pas dans le fichier "app.config" présent dans le dossier de l'application. cela ne s'enregistre pas non plus dans le fichier "NomDuProgramme.exe.config".
    Les paramètres de scope "utilisateur" se trouvent dans un fichier user.config dans le répertoire du profil de l'utilisateur (genre C:\Users\<username>\AppData\....). Le fichier est créé à la demande, la première fois que les paramètres utilisateur sont enregistrés


    Citation Envoyé par tssi555 Voir le message
    Je veux juste mettre à jour et sauvegarder les valeurs présentes dans l'xml , .config ou .setting peut importe à partir d'un simple bouton. est ce possible ? comment faire ?
    Oui, avec la classe Configuration. Mais normalement tu n'es pas supposé faire ça : depuis Windows Vista, l'utilisateur ne peut plus écrire dans le répertoire Program Files (entre autres), il ne faut donc pas enregistrer les paramètres utilisateur à cet endroit. Les paramètres d'un utilisateur doivent se trouver dans son répertoire de profil, comme indiqué plus haut

    Citation Envoyé par tssi555 Voir le message
    D'autre part, on en trouve une paire de fichiers de ce style dans les répertoires de l'application :
    - NomDuProgramme.vshost.exe.Config
    - NomDuProgramme.exe.Config
    - app.config

    Quel est le rôle de chaque fichier, et pourquoi les données ne se mettent pas automatiquement à jour dans les autres fichiers en parallèle ?
    cf. mes explications précédentes

  3. #3
    Membre actif Avatar de tssi555
    Analyse système
    Inscrit en
    Juillet 2008
    Messages
    594
    Détails du profil
    Informations professionnelles :
    Activité : Analyse système

    Informations forums :
    Inscription : Juillet 2008
    Messages : 594
    Points : 295
    Points
    295
    Par défaut
    Merci Thomas,

    Je viens de vérifier dans le dossier C:\Users\<Moi>\AppData\Roaming\Microsoft
    il y a 4 dossiers portants le même nom du projet concaténé avec une série de caractère du genre NomDuProgramme.exe_Url_d5hqoek4574sisbuz2yzwzf.
    Quand je vais dedans, j'ai un autre dossier 1.0.0.0 dans lequel je trouve enfin le fichier user.config mais ce dernier ne contient pas grand choses, deux balises <configuration><configSection></configSection></configuration> !
    Concrètement, un exemple de code serait le bienvenu, comment faire pour :
    - écrire des valeurs dans ce fichier. (à partir d'une form) ?
    - récupérer dynamiquement ces valeurs dans des variables ?

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 753
    Points
    39 753
    Par défaut
    Citation Envoyé par tssi555 Voir le message
    Concrètement, un exemple de code serait le bienvenu
    Ce n'est pas une question de code, ce que tu as écrit est correct a priori... Tu es sûr qu'aucun des fichiers user.config ne contient la valeur de ton paramètre ? Normalement il devrait...

  5. #5
    Expert confirmé

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    2 066
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 2 066
    Points : 4 233
    Points
    4 233
    Par défaut
    chez moi il est dans le répertoire
    C:\Documents and Settings\nomutilisateur\Local Settings\Application Data\nomordi\Test.exe_Url_sriy5u322gdts4ftsisit4utptuy0kdj\1.0.0.0

  6. #6
    Membre émérite
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Points : 2 498
    Points
    2 498
    Par défaut
    Il y a deux trois petites choses a savoir

    1- Dans le fichier que tu mentionne ne se trouvent QUE les settings au niveau user ET qui ont été modifies par l'application (PAS avec le designer)

    2- Tu peux aussi synchroniser ce fichier dans le designer des properties : en haut a gauche il y a un tab (Synchronise)

    Dans le code (par exemple)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
          Settings.Default.dtFrom = new DateTime(2011, 11, 01);
          Settings.Default.Save();
    Mais uniquement pour les settings "user"

Discussions similaires

  1. Réponses: 15
    Dernier message: 28/11/2008, 17h57
  2. Réponses: 6
    Dernier message: 26/08/2008, 15h37
  3. Réponses: 2
    Dernier message: 08/08/2007, 19h58
  4. Réponses: 17
    Dernier message: 09/07/2007, 14h28
  5. Fichier de configuration App.config
    Par cereal59 dans le forum C#
    Réponses: 2
    Dernier message: 28/03/2007, 10h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo