设置文件与 app.config [重复]

Posted

技术标签:

【中文标题】设置文件与 app.config [重复]【英文标题】:settings file vs app.config [duplicate] 【发布时间】:2011-02-02 03:00:54 【问题描述】:

可能重复:What is the difference between app.config file and XYZ.settings file?

我不太了解设置和配置文件之间的交互/差异。如果我在设置文件中添加一个条目,它也会被添加到 app.config 中。这是否意味着更改 app.config 中的值会更新设置?如果没有,如何更新实时应用程序中的设置?使用设置文件而不是直接将内容放入 app.config 的一般目的是什么?

【问题讨论】:

类似于***.com/questions/13100498/…,提供更多洞察力。 【参考方案1】:

从我环顾四周的情况来看,设置文件和设计器似乎为配置文件提供了一种包装器。设置设计器控制进入配置文件的一些值,但也会修改您的 Properties 目录中的 .settings 文件,并更改您的 Settings.Designer.cs 文件中生成的代码。

请注意,在配置文件中,值没有任何类型,但在 .settings 文件中,它们有。现在打开Settings.Designer.cs。您会看到那里生成的代码从您的配置文件中取出值,并将它们转换为正确的类型,如您的 .settings 文件或设置设计器中指定的那样。所以它为你的配置文件中的值提供了一个类型安全的接口。如果您更改配置文件中的值,那么下次您转到设置设计器时,它会询问您是否要更新 .settings 以反映这些更改。

所以回答你的问题,一旦应用程序被部署,你可以更改配置文件中的值,只要它可以转换为正确的类型,否则我猜它会在Settings.Designer.cs 中失败。我能看到的唯一目的似乎是设计人员在处理配置文件的 XML 时的类型安全和便利。

另外,请记住,由于 config 不是版本化文件,安装程序不会在客户端计算机上更新它们。它不会允许它踩踏任何用户更改。因此,一旦部署完成,如果您将自己的更改放入用户需要的配置中,他们将不得不手动复制更改。

【讨论】:

我认为还有另一个目的,因为 Settings.Designer.cs 被编译到应用程序中,这样即使 app.config 被删除,它也可以访问设置。

以上是关于设置文件与 app.config [重复]的主要内容,如果未能解决你的问题,请参考以下文章

.NET 桌面应用程序中的 Settings.settings 与 app.config [重复]

Web.config 转换可以与 App.config 文件一起使用吗? [复制]

App.config:用户与应用程序范围

在 app.config 文件中配置 wcf 超时 [重复]

对象引用未设置为从代码中更改 app.config 中连接字符串的对象实例 [重复]

如何在 C# 中使用 app.config 文件定义连接字符串 [重复]