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 :

Ouvrir et traiter un fichier ".exe.config"


Sujet :

C#

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Ingénieur Vision Industrielle
    Inscrit en
    Mai 2016
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur Vision Industrielle

    Informations forums :
    Inscription : Mai 2016
    Messages : 2
    Par défaut Ouvrir et traiter un fichier ".exe.config"
    Bonjour,

    Je dois écrire un programme qui permet de simplifier la modification d'un fichier au format ".exe.config".
    J'aimerais pouvoir ouvrir mon fichier ".exe.config" via une boite de dialogue accessible depuis le menu "Fichier > Ouvrir" et importer les valeurs de mon fichier de configuration dans les champs prévus à ces effets (j'ai tout un lot de TextBox pour les chaines de caractère, NumericUpDown pour les valeur numérique et quelques booléiens pour les booléiens).

    De ce que j'ai cru comprendre de par mes recherches sur Google, pour ouvrir et exploiter ces fichier config plus facilement, je devrais passer par le ConfigurationManager (qui sur le papier, a effectivement l'air pratique pour chercher et stocker les informations, sachant que mon fichier de configuration ne sera pas ordonné).

    Cependant, je n'arrive pas a extraire la moindre information de mon fichier de config (depuis mon explorateur de variable, je constante effectivement que mon ConfigurationManager est vide, mais aussi qu'il a rajouter un ".config" supplémentaire dans le FilePath, devenant ".exe.config.config" au lieu de ".exe.config").

    Je dois surement faire un truc de travers, mais je suis incapable de le voir, ni de trouver une solution équivalente.
    Pouvez vous m'aiguiller ?

    Voici mon petit bout de code ;

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    private void ouvrirToolStripMenuItem_Click(object sender, EventArgs e)
         {
            OpenFileDialog f = new OpenFileDialog();
             if (f.ShowDialog() == DialogResult.OK)
             {               
                 var MaConfig = ConfigurationManager.OpenExeConfiguration(f.FileName);
                 //tB_Emplacement_cURL.Text = MaConfig.AppSettings.Settings["Emplacement_cURL"].Value;
                 //n_Acq_Detail_X.Value = decimal.Parse(MaConfig.AppSettings.Settings["Acq_Detail_X"].Value);
                 if(MaConfig.AppSettings.Settings.Count != 0) MessageBox.Show((MaConfig.AppSettings.Settings["Emplacement_cURL"].Value).ToString(), "ET BIM !!!");
                 else MessageBox.Show(MaConfig.AppSettings.Settings.Count ,"ET BIM !!!");
             } 
         }
    Et on sais jamais, un extrait de mon fichier config :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
        <startup> 
            <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
        </startup>
        <appSettings>
            <add key="Emplacement_cURL" value="***" />
            <add key="Acq_Detail_X" value="70" />
        </appSettings>
    </configuration>
    D'avance merci !

  2. #2
    Membre émérite
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2005
    Messages
    562
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2005
    Messages : 562
    Par défaut
    Bonjour,

    J'ai l'habitude d'utiliser le .exe.config dans mes appli WinForm. Pour accéder à une valeur je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    var test = MonAppli.Properties.Settings.Default.LaValeur;
    Je ne sais pas pourquoi mais je place toujours le fichier Settings.settings dans properties ... Dans tous les cas on peux accéder directement à la valeur.

    Pour la sauvegarde un petit

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MonAppli.Properties.Settings.Default.Save();
    rendra les modifications persistantes.

    Sinon pour info il y a le fichier Settings.cs qui permet une gestion des évènement liés aux settings (c'est le petit nom que je leur donne ). Je ne sais jamais comment faire pour le faire apparaitre mais normalement il est généré tout seul lorsqu'on utilise les settings donc je suppose que tu l'as. Il permet d'avoir des évènements lorsque les settings sont modifié, enregistré ...etc

    Bon code,
    J@ck.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Ingénieur Vision Industrielle
    Inscrit en
    Mai 2016
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur Vision Industrielle

    Informations forums :
    Inscription : Mai 2016
    Messages : 2
    Par défaut
    Merci bien pour la réponse,

    j'ai toutefois trouvé un moyen de passer mon problème via ce morceau de code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ExeConfigurationFileMap map = new ExeConfigurationFileMap { ExeConfigFilename = f.FileName };
    Configuration MaConfig = ConfigurationManager.OpenMappedExeConfiguration(map, ConfigurationUserLevel.None);
    au lieu de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var MaConfig = ConfigurationManager.OpenExeConfiguration(f.FileName);
    Mais je garde l'idée en tête pour ce qui est de la sauvegarde, vu que c'est un problème auquel je risque d'être confronté très bientôt !

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 11/10/2009, 23h20
  2. Lire fichier exe.config structure complexe
    Par Ogotcha dans le forum Windows Forms
    Réponses: 2
    Dernier message: 22/07/2008, 13h31
  3. Réponses: 7
    Dernier message: 12/02/2007, 10h11
  4. Fichier texte de config
    Par jeannot27 dans le forum C++Builder
    Réponses: 15
    Dernier message: 22/01/2004, 18h47

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