Pourquoi mes modifications de AppSettings dans App.config ne sont-elles pas prises en compte en cours d'exécution? (Application de la console)
J'ai une application console qui dispose de sa propre Application.config.
J'ai besoin de changer certaines valeurs dans la section de temps en temps.
Mon problème est que quand j'exécute le fichier exe dans le bin/debug dossier, il obtient pertinentes appsettings correctement. Mais quand j'ai éditer et de modifier les valeurs de certaines paires clé/valeur et RÉ-EXÉCUTEZ le fichier exe, il lit encore les valeurs d'origine.
(RE-RUN, je veux dire l'exécution de l'application sur le promt de commande en appelant MyTool.exe)
J'ai essayé d'appeler
ConfigurationManager.RefreshSection("appSettings");
au début de ma méthode Principale. Mais n'aide pas.
Pouvez-vous me conseiller?
Grâce
source d'informationauteur pencilCake
Vous devez vous connecter pour publier un commentaire.
Dépend de comment vous RÉ-Exécution de ce fichier exe. Si vous le faites dans Visual Studio, en appuyant sur la touche F5VS simplement des copies de l'application.fichier de configuration de votre projet à la sortie et le renomme
AppName.exe.config
. Donc, si vous souhaitez que vos modifications soient prises en compte, vous devez modifierAppName.exe.config
(pasApp.config
), puis exécutez le fichier exécutable à partir de l'Explorateur Windows.Ceci étant dit, l'Application.la config est lu et interprété qu'une seule fois. Lorsque l'application démarre. Les valeurs sont ensuite mis en cache pour éviter de coûteux d'analyse XML à chaque fois que votre application demande une certaine valeur.
App.la config est conçu pour stocker les valeurs de configuration qui ne sont pas censés être modifié. Si vous avez besoin de modifier les valeurs de configuration de manière dynamique, vous devez utiliser un autre mécanisme de stockage: fichier, base de données, ...
Mais la
ConfigurationManager.RefreshSection("appSettings");
méthode devrait fonctionner. Une fois que vous avez modifié leAppName.exe.config
fichier, vous appelez cette méthode, puis récupère à nouveau la valeur que vous avez besoin de l'aide deConfigurationManager.AppSettings["someKey"];
qui devrait vous retourne la nouvelle valeur.êtes-vous enregistrer le fichier config?