2016-03-24 1 views
0

Je demande aC# qui enregistre les paramètres à l'aide ConfigurationManager, comme ceci:ConfigurationManager n'épargnent pas dans VS2012 après la sortie

public static void SaveSetting(string key, string value) 
    { 
     var configurationFile = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); 
     configurationFile.AppSettings.Settings.Remove(key); 
     configurationFile.AppSettings.Settings.Add(key, value); 
     configurationFile.Save(ConfigurationSaveMode.Full); 
     ConfigurationManager.RefreshSection("appSettings"); 
    } 

Exécution d'un .exe compilé, tout va bien - application_name.exe.Config contient la mise à jour paramètres.

En cours d'exécution de VS2012, nom_application.vshost.exe.Config est enregistré correctement par SaveSetting(). Mais dès que je quitte l'application, nom_application.vshost.exe.Config revient à ce qu'il était avant de démarrer l'application - même l'horodatage montre qu'il s'agit de l'ancienne version du fichier de configuration.

Que se passe-t-il? Vshost.exe.config est juste pour l'usage pendant le débogage

Répondre

0

Il n'est pas prévu que ses valeurs persistent. Dès que vous arrêtez d'exécuter l'application, elle est remplacée par le fichier exe.config.

+0

Merci! C'est logique, même si ce n'est pas comme ça que je l'aurais fait :) –