2016-03-24 4 views
0

I aC# Anwendung, die Einstellungen über Konfigurationsmanager, wie das spart:Configuration Speichern nicht in VS2012 nach der Ausfahrt

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"); 
    } 

aus einer kompilierten Exe-Rennen, alles ist in Ordnung - application_name.exe.Config enthält die aktualisierte die Einstellungen.

Aus VS2012 wird application_name.vshost.exe.Config ordnungsgemäß von SaveSetting() gespeichert. Aber sobald ich die Anwendung verlasse, kehrt application_name.vshost.exe.Config zurück zu dem, was es vor dem Start der Anwendung war - selbst der Zeitstempel zeigt an, dass es sich um die alte Version der Konfigurationsdatei handelt.

Was ist los?

Antwort

0

vshost.exe.config ist nur für die Verwendung während des Debuggens. Es ist nicht beabsichtigt, dass seine Werte beibehalten werden. Sobald Sie die Anwendung beenden, wird sie durch die Datei exe.config ersetzt.

+0

Danke! Das macht Sinn, auch wenn es nicht so wäre, wie ich es gemacht hätte :) –