我正在尝试使用以下代码从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文件没有影响?
答案 0 :(得分:1)
您正在从调试模式构建并运行。默认情况下,调试模式使用VSHost .exe和.config来改善启动时间和调试时间。由于它正在更新此临时文件,因此您没有看到预期文件中的更改。
要使其正常工作,您需要执行以下两项操作之一:
禁用托管流程
- 在Visual Studio中打开可执行项目。不生成可执行文件的项目(例如,类库或服务项目) 没有这个选项。
- 在“项目”菜单上,单击“属性”。
- 单击“调试”选项卡。
- 清除“启用Visual Studio宿主进程”复选框。
醇>当托管过程被禁用时,有几个调试功能 不可用或体验性能下降。欲获得更多信息, 请参阅调试和托管流程。