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 :

[C#] Comment modifier la valeur d'une clé dans mon fichier app.config ?


Sujet :

C#

  1. #1
    Membre habitué Avatar de meli0207
    Inscrit en
    Novembre 2004
    Messages
    208
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Novembre 2004
    Messages : 208
    Points : 133
    Points
    133
    Par défaut [C#] Comment modifier la valeur d'une clé dans mon fichier app.config ?
    Bonjour,

    je voudrais modifier la valeur d'une clé dans mon fichier app.config

    le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    System.Configuration.ConfigurationManager.AppSettings["cle"] = "valeur";


    modifie temporairement la valeur de la cle mais ne la sauve pas dans app.config

    Merci d'avance!

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Août 2003
    Messages
    835
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2003
    Messages : 835
    Points : 1 046
    Points
    1 046
    Par défaut
    Si je ne me trompe pas, c'est une opération possible en .Net 2.0 pas en 1.1. Si tu utilises le framework 1.1, il va falloir passer par un autre fichier de config à toi.

  3. #3
    Membre habitué Avatar de meli0207
    Inscrit en
    Novembre 2004
    Messages
    208
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Novembre 2004
    Messages : 208
    Points : 133
    Points
    133
    Par défaut
    non non j'utilise le framework 2.0

  4. #4
    Rédacteur
    Avatar de abelman
    Inscrit en
    Février 2003
    Messages
    1 106
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 1 106
    Points : 2 629
    Points
    2 629

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Août 2003
    Messages
    835
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2003
    Messages : 835
    Points : 1 046
    Points
    1 046
    Par défaut
    Alors il peut se produire deux choses:

    - soit ce n'est pas la bonne méthode que tu utilises, mais bon ça m'etonnerait. En tout cas je ne peux pas te le garantir, pas assez l'habitude du framework 2.0.

    - soit, et c'est un peu plus subtil, il faut bien faire attention au fait que ton fichier de config s'appelle app.config dans ta solution, mais que qd tu compiles , ce fichier est copié dans le répertoire de compilation et est renommé MonAplication.exe.config. C'est ce fichier qui est chargé par le framework et c'est donc ce fichier que tu modifies, et non pas le fichier "original" app.config.Il se peut que ta modification fonctionne parfaitement, mais que toi tu ouvres le app.config pour la voir, et forcemment comme ce n'est pas le bon fichier... J'espere que tu me suis.
    ...

    Bon aprés avoir suivi le lien d'abelman tu n'utilises pas la bonne méthode. Ce qui n'enleve rien à ma deuxieme remarque .

  6. #6
    Membre habitué Avatar de meli0207
    Inscrit en
    Novembre 2004
    Messages
    208
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Novembre 2004
    Messages : 208
    Points : 133
    Points
    133
    Par défaut
    voila mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    System.Configuration.Configuration config = 
    ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
    config.AppSettings.Settings["cle"].Value = "valeur";
    config.Save(ConfigurationSaveMode.Modified);
    cette fois ci, la valeur n'est pas modifiée du tout
    en observant config en mode debug je m'apercois que le FilePath n'est pas app.config mais monappli.vshost.exe.config ... donc j'imagine que c'est pour cela que app.config n'est pas modifié.... mais ca ne résoud pas mon problème...

  7. #7
    Membre éprouvé
    Profil pro
    Inscrit en
    Août 2003
    Messages
    835
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2003
    Messages : 835
    Points : 1 046
    Points
    1 046
    Par défaut
    Merci d'avoir lu mes remarques plus haut... Essaye de déployer ton appli, et pas de la lancer depuis VS, tu devrais mieux comprendre.

  8. #8
    Membre habitué Avatar de meli0207
    Inscrit en
    Novembre 2004
    Messages
    208
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Novembre 2004
    Messages : 208
    Points : 133
    Points
    133
    Par défaut
    desolée j'avais pas vu... je suis fatiguée apres une dure journée de travail... bon je vais essayer un truc pour voir si je t'ai bien suivi!
    ...

    effectivement, lorsque je lance monappli.exe sans passer par VS , ca fonctionne bien

    mais c'est pas tres pratique tout ca...

    pourquoi avoir fait ce systeme de changer le nom du fichier??
    pourquoi lorsque l'on passe par VS la lecture se fait dans un fichier et l'ecriture dans l'autre??

  9. #9
    Membre éprouvé
    Profil pro
    Inscrit en
    Août 2003
    Messages
    835
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2003
    Messages : 835
    Points : 1 046
    Points
    1 046
    Par défaut
    Ce n'est pas incohérent. VS distingue le fichier de config qui est maintenu dans ta solution de celui qui va être chargé à l'exécution. Qd tu compiles ta solution il copie et renomme ton app.Config (note bien que ce n'est pas là un nom de fichier de config .net standard, puisqu'il doit s'appeler MonAppli.exe.config).

    En .net 1.1 ça ne posait pas de probleme, de tte façon tu ne pouvais pas modifier ton fichier de config programmatiquement. En .Net 2.0 cette solution est au contraire la plus pratique : tu ne voudrais pas te retrouver avec un fichier de config dans ta solution qui contient les modifs que tu as apporté à l'exécution non ? Il faudrait alors a chaque fois que tu relances ton appli que tu supprimes ces modifications pour retester depuis zéro... Bref ya du pour et du contre, mais ça se tient, le tout est d'être au courant .

    PS : tout ça tient encore + la route lorsque ta solution est sous controle de source (sourcesafe ou autre).

  10. #10
    Membre habitué Avatar de meli0207
    Inscrit en
    Novembre 2004
    Messages
    208
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Novembre 2004
    Messages : 208
    Points : 133
    Points
    133
    Par défaut
    c'est vrai... j'avais pas vu les choses comme ca...
    n'empeche que quand tu n'es pas au courant tu peux chercher pendant des heures pourquoi ca ne marche pas....

    en tout cas merci pour vos reponses!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XSL] Comment modifier la valeur d'une variable?
    Par sorcer1 dans le forum XSL/XSLT/XPATH
    Réponses: 8
    Dernier message: 17/02/2010, 13h26
  2. Comment modifier la valeur d'une adresse mémoire ?
    Par copterkill dans le forum Windows
    Réponses: 6
    Dernier message: 08/02/2009, 22h18
  3. Comment modifier la valeur d'une plage de cellule
    Par shako6 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 12/03/2008, 19h12
  4. Comment modifier la valeur d'une variable Mysql.
    Par pcsystemd dans le forum SQL Procédural
    Réponses: 6
    Dernier message: 19/09/2007, 08h22
  5. Réponses: 4
    Dernier message: 07/08/2006, 17h01

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