2012-01-12 19 views
8

mio App.Config è qualcosa di simile:app.config non sono salvando i valori

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
<appSettings> 
    <add key="foo" value=""/> 
</appSettings> 
</configuration> 

cerco di salvare il valore foo utilizzando il seguente metodo:

private void SaveValue(string value) { 
    var config = 
     ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); 
    config.AppSettings.Settings.Add("foo", value); 
    config.Save(ConfigurationSaveMode.Modified); 
} 

ma questo non cambia il valore di esso. e non ho un'eccezione come risolvere questo? Grazie in anticipo!

+0

Ecco l'esempio completo [Metodo ConfigurationManager.OpenExeConfiguration (ConfigurationUserLevel)] (http://msdn.microsoft.com/en-us/library/ms134265. aspx) –

risposta

26

Quando si esegue il debug con Visual Studio, probabilmente lo <yourexe>.vshost.exe.config viene modificato anziché lo <yourexe>.exe.config. Quando si crea l'applicazione in modalità di rilascio, solo <yourexe>.exe.config esiste e verrà aggiornato.

Il codice aggiungerà inoltre un nodo aggiuntivo al file di configurazione. Usa qualcosa come il codice qui sotto per aggiornare l'impostazione:

var config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); 
config.AppSettings.Settings["foo"].Value = "text";  
config.Save(ConfigurationSaveMode.Modified); 
+0

Grazie mille per la tua risposta! Ha funzionato bene :) – Jack

0

Prova facendo prima eliminare il vecchio valore e quindi aggiungere nuovamente

config.AppSettings.Settings.Remove("foo"); 
config.AppSettings.Settings.Add("foo", value); 
config.Save(ConfigurationSaveMode.Modified); 
+1

non ha funzionato per me. – Jack

3

App.config viene copiato nella cartella di output in costruzione, denominato <yourexe>.exe.config. Questo è il vero file di configurazione che viene caricato e salvato in runtime.

Dai un'occhiata alla tua cartella di output, lì probabilmente troverai che il file di configurazione contiene le tue modifiche.

+2

è esattamente lì che sto vedendo. non ci sono cambiamenti. – Jack

Problemi correlati