为什么在settings.settings和app.config中都会出现默认值?

时间:2012-01-26 15:41:16

标签: c# winforms

如果我更新settings.settings中的值,则settings.designer文件中的代码将更改为默认值。但是在我的构建中,我有app.debug.config和app.live.config版本,我想将其复制到app.config(主动)配置,该配置包含相关的应用程序配置数据。因此,设置文件默认值无关紧要。

我发现设置文件中的默认值会覆盖app.config。所以我将'GeneratedDefaultValueInCode'设置为false。我认为这意味着app.config将包含活动设置。但是,当我部署我的应用程序时,低,看到设置是空白的!

有两个位置存储相同数据的重点是什么?如果使用设置文件,甚至有app.config文件的意义何在?

如何确保在代码中使用设置属性时,是否从app.config中读取默认设置?

1 个答案:

答案 0 :(得分:0)

如果你查看Settings.Settings的代码隐藏,你会看到'默认值'显示的实际上是存储在app.config中的值,正在从app.config加载 - 该值不存储在Settings.settings本身或其代码隐藏中。

我不确定你是如何设置app.debug.config和app.live.config的,但是只要在运行时APPNAME.exe有一个匹配的APPNAME.config,它就会加载它,包括具有匹配APPNAME.vshost.config的APPNAME.vshost.exe

您也可以使用ConfigurationManager

直接从appconfig中读取