WPF app.config编写

时间:2010-12-16 17:19:44

标签: c# .net wpf app-config

我已经看到了这个解决方案,但似乎对我不起作用:

Configuration oConfig = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); 
oConfig.AppSettings.Settings["PreferenceToRemember"].Value = “NewValue”; 
oConfig.Save(ConfigurationSaveMode.Modified); 
ConfigurationManager.RefreshSection("appSettings"); 

它成功更改了内存中的值,但未将其保存回配置文件。

我正在尝试在Wpf应用中执行此操作,如果这有任何区别。

或者有一种将用户设置保存到文件的首选方法吗?

2 个答案:

答案 0 :(得分:1)

如果您的应用安装在\Program Files\中,则可能无权写入该文件。通常,app.config文件是手工修改的(至少在我的经验中)。如果要保留用户首选项,则应查看.settings文件,因为这些文件是在%appdata%(或%localappdata%)目录中创建的,该目录位于用户目录下。

答案 1 :(得分:0)

我的猜测是使用OpenExeConfiguration实际上并没有打开相关文件。例如,您可以从XAP运行,.exe.config内部仍然存在.xap,但它不会映射到文件系统上的实际文件。

您可以通过查看oConfig.HasFile是否true来查看此内容。

如果我的猜测是正确的,那么你需要使用OpenExeConfiguration(string)重载; the sample on the MSDN page有合理的方法来获取正确的文件名,但我的第一反应是尝试System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase