Ho scritto una piccola utility che mi permette di cambiare un semplice appSetting per il file App.config di un'altra applicazione, e quindi salvare le modifiche:Può ConfigurationManager conservare i commenti XML su Save()?
//save a backup copy first.
var cfg = ConfigurationManager.OpenExeConfiguration(pathToExeFile);
cfg.SaveAs(cfg.FilePath + "." + DateTime.Now.ToFileTime() + ".bak");
//reopen the original config again and update it.
cfg = ConfigurationManager.OpenExeConfiguration(pathToExeFile);
var setting = cfg.AppSettings.Settings[keyName];
setting.Value = newValue;
//save the changed configuration.
cfg.Save(ConfigurationSaveMode.Full);
Questo metodo funziona bene, tranne che per un effetto collaterale. Il file .config appena salvato perde tutti i commenti XML originali, ma solo nell'area AppSettings. È possibile conservare i commenti XML dall'area AppSettings del file di configurazione originale?
Here's a pastebin of the full source if you'd like to quickly compile and run it.
avuto lo stesso problema qui con .NET 4.0 – pipelinecache
anche scoperto che lo fa solo nella sezione appSettings. – pipelinecache
I commenti vengono mantenuti anche nel resto del mio file .config. Ho aggiornato il mio post per riflettere questo. –