He escrito una pequeña utilidad que me permite cambiar un AppSetting simple para App.config archivo de otra aplicación, y luego guardar los cambios:¿Puede ConfigurationManager conservar comentarios XML en 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);
Esto funciona bien, excepto por un efecto secundario. El archivo .config recientemente guardado pierde todos los comentarios XML originales, pero solo dentro del área AppSettings. ¿Es posible conservar comentarios XML desde el área de configuración del archivo de configuración original?
Here's a pastebin of the full source if you'd like to quickly compile and run it.
dieron el mismo problema aquí con .NET 4.0 – pipelinecache
también descubrió que sólo lo hace en la sección appsettings. – pipelinecache
Los comentarios se conservan en el resto de mi archivo .config también. Actualicé mi publicación para reflejar esto. –