从 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 文件没有影响?
您正在从调试模式生成和运行。默认情况下,调试模式使用 VSHost .exe 和 .config 来缩短启动时间和调试时间。由于它正在更新此临时文件,因此您看不到预期文件中的更改。
要使其正常工作,您需要做以下两件事之一:
- 在发布模式下运行
- 按照此 MSDN 文章中的指导关闭此行为:
禁用宿主进程
- 在 Visual Studio 中打开一个可执行项目。不生成可执行文件的项目(例如,类库或服务项目) 没有此选项。
- 在"项目"菜单上,单击"属性"。
- 单击调试选项卡。
- 清除"启用 Visual Studio 宿主进程"复选框。
禁用托管进程时,有几个调试功能是 不可用或性能下降。欲了解更多信息, 请参阅调试和托管过程。