WPF:在运行时更改配置文件用户设置?
Posted
技术标签:
【中文标题】WPF:在运行时更改配置文件用户设置?【英文标题】:WPF: Changing config file user settings at runtime? 【发布时间】:2011-01-28 00:40:54 【问题描述】:我正在尝试更改我的 WPF 应用程序中的一些配置文件用户设置值,但它只能部分工作。该值已正确更改,并且程序可以使用该值正常运行。我什至可以重新启动程序,并且该值仍然是我将其更改为的值。问题是当我打开 .exe.config 文件时,该值仍然是旧值。我使用此代码更改值:
Properties.Settings.Default.ProjectNumber = varTestExample;
Properties.Settings.Default.Save();
此保存代码在哪里保存更改以及在我运行此代码后程序如何/在哪里读取值? 如果我运行程序的干净版本,则 ProjectNumber 值是从 .exe.config 文件中正确获取的,如果我更改配置文件中的值,它也会在我运行程序时更改。但是一旦我运行上面的代码,程序就不会从配置文件中读取值。为什么?
【问题讨论】:
【参考方案1】:设置保存在每个用户的基础上。您应该查看C:\Documents and Settings\[UserName]\...
(WinXP) 或C:\Users\...
(Vista/7) 中的Application Data
文件夹。
在不保存任何设置的情况下,程序使用默认配置,即您的*.exe.config
文件。但是,一旦您保存更改,就会创建一个用户特定的设置文件,并在下次启动时加载此文件。我想,这应该可以解释你的行为。
【讨论】:
【参考方案2】:用户保存的设置存储在用户的 AppData 目录下。通常 C:\Users\\AppData\Local\\
.exe.config 文件中存储的值是默认值(您在 VS 的设置编辑器中设置)
希望对你有帮助
【讨论】:
【参考方案3】:Properties.Settings 仅指基于用户的设置,应用程序设置是一组完全独立的设置,如果您使用 ClickOnce 安装,这些设置将被覆盖 - 因此请注意您存储在那里的配置。
private void updateDataInConfigFile()
Xml xmlConfigFile = new Xml(ProjectName.sSettingFileName);
xmlConfigFile.SetValue("My Setting Section", "MyFirstSetting", MySettingValue);
private void GetDataFromConfigFile()
Xml xmlConfigFile = new Xml(MyProject.sSettingFileName);
txtAccessDriverId.Text = xmlConfigFile.GetValue("Mys Setting Section", "MyFirstSetting").ToString();
【讨论】:
以上是关于WPF:在运行时更改配置文件用户设置?的主要内容,如果未能解决你的问题,请参考以下文章