修改app.config,并保留注释的方法

    /// <summary>
        /// 新增或修改appSettings 保留注释
        /// </summary>
        /// <param name="configPath"></param>
        /// <param name="key"></param>
        /// <param name="value"></param>
        /// <returns></returns>
        public static bool Set(string configPath, string key, string value)
        {
            try
            {
                XmlDocument xml = new XmlDocument();
                xml.Load(configPath);
                XmlNode node0 = xml.SelectSingleNode("/configuration/appSettings/add[@key='" + key + "']");
                if (node0 == null)
                {
                    var node = xml.CreateElement("add");
                    node.SetAttribute("key", key);
                    node.SetAttribute("value", value);
                    var parentNode = xml.SelectSingleNode("/configuration/appSettings");
                    parentNode.AppendChild(node);
                }
                else
                {
                    node0.Attributes["value"].Value = value;
                }
                xml.Save(configPath);
                ConfigurationManager.RefreshSection("appSettings");
                return true;
            }
            catch (Exception e)
            {
                Logger.LogError("新增或修改appSettings", e);
            }
            return false;
        }
原文地址:https://www.cnblogs.com/simadi/p/14387916.html