从 c# 方法更新 App.Config

本文关键字:App Config 更新 方法 | 更新日期: 2023-09-27 18:36:07

我正在尝试使用以下代码从Windows窗体更新我的应用程序配置

public void UpdateConfigFile(string con)
        {
            //updating config file
            XmlDocument xmlDoc = new XmlDocument();        
            //Loading the Config file
            xmlDoc.Load(AppDomain.CurrentDomain.SetupInformation.ConfigurationFile);
            if (xmlDoc.DocumentElement != null)
                foreach (XmlElement xElement in xmlDoc.DocumentElement)
                {
                    if (xElement.Name == "connectionStrings")
                    {
                        //setting the coonection string
                        if (xElement.FirstChild.Attributes != null) xElement.FirstChild.Attributes[2].Value = con;
                    }
                }
            //writing the connection string in config file
            xmlDoc.Save(AppDomain.CurrentDomain.SetupInformation.ConfigurationFile);
        }

不确定我是否错过了重点,但我希望在我的解决方案中看到 app.config 文件更新。但是,代码实际上更新了我的 C:''Users''temp''Documents''Visual Studio 2010''Projects''SequoiaToolbox2014MvvM''SequoiaToolbox2014MvvM''bin''Debug''SequoiaToolbox2014MvvM.vshost.exe.config,并且对 app.con 文件没有影响?

从 c# 方法更新 App.Config

您正在从调试模式生成和运行。默认情况下,调试模式使用 VSHost .exe 和 .config 来缩短启动时间和调试时间。由于它正在更新此临时文件,因此您看不到预期文件中的更改。

要使其正常工作,您需要做以下两件事之一:

  1. 在发布模式下运行
  2. 按照此 MSDN 文章中的指导关闭此行为:

禁用宿主进程

  1. 在 Visual Studio 中打开一个可执行项目。不生成可执行文件的项目(例如,类库或服务项目) 没有此选项。
  2. 在"项目"菜单上,单击"属性"。
  3. 单击调试选项卡。
  4. 清除"启用 Visual Studio 宿主进程"复选框。

禁用托管进程时,有几个调试功能是 不可用或性能下降。欲了解更多信息, 请参阅调试和托管过程。