【问题标题】:c# application setting not savedc#应用程序设置未保存
【发布时间】:2014-06-11 22:35:58
【问题描述】:

使用 VS2010 ExpressWin7-64。 在我的应用程序中,我有几个应用程序设置。 大多数(混合类型)是用户设置,一种是应用程序设置(一个数据集)。

我使用内置的设置表,其中一个设置范围设置为应用程序,而其他范围设置为用户。 用户设置全部保存并检索OK,在XML文件中也可以看到。

(string userConfig = ConfigurationManager.OpenExeConfiguration(
                  ConfigurationUserLevel.PerUserRoamingAndLocal).FilePath;)

问题:虽然用户设置保存正常,但没有保存一个应用程序设置,并且不存在于相关配置文件中。

(string appConfig = ConfigurationManager.OpenExeConfiguration(
                  ConfigurationUserLevel.None).FilePath;).

Settings.Design文件中我们可以看到Application Setting为只读项(get only),可以,但是没有保存数据,也没有找到数据,(除了一个空的DataSet)。

User设置里面有类似的DataSet,保存OK,可以加载了。

为了保存设置,我运行:

Properties.Settings.Default.Upgrade();
Properties.Settings.Default.Save();

谢谢

【问题讨论】:

  • @PatrickHofman 这是一个很好的做法,否则每当运行新版本的软件时,它都会创建一个具有默认值的全新设置副本。但应该在加载之前完成。

标签: c# app-config


【解决方案1】:

应用程序范围设置是只读的,只能在设计时更改。 所以当你调用 save 方法时它不会持久化数据。

但是,用户范围设置可以在运行时编写,就像您更改任何属性值一样。

更多信息您可以查看Using Settings in C#

【讨论】:

  • PatrickHofman:正如我所写,数据不会保存到 XML 文件中,因此无论如何更新都没有影响。致 Lamourou:谢谢,但是,正如您所写,应用程序设置只能在设计时更新,而这正是我所做的。最初如何保存应用程序设置?我错过了什么吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-12-21
  • 2017-07-14
  • 2011-07-19
  • 2012-09-02
  • 2017-03-14
  • 2017-06-13
  • 2018-02-21
相关资源
最近更新 更多