【发布时间】:2011-11-19 08:31:32
【问题描述】:
可能重复:
What is the difference between app.config file and XYZ.settings file?
我对 Visual Studio 中用于存储和管理桌面应用程序设置的这两种机制的明显冗余感到非常困惑:
- 您可以使用 XML
app.config文件,将项目添加到<appSettings>部分。这些可以使用ConfigurationManager类从代码中检索。 - 或者,您可以使用 Settings.settings 文件通过编辑器添加单独的设置。 Visual Studio 将生成一个
Settings类,用于在运行时对设置进行类型安全的检索。
这两种机制似乎服务于相同(或几乎相同)的目的。我知道存在一些差异,但我也对重叠及其后果感到困惑。例如,当我使用 Visual Studio 将设置添加到 Settings.settings 文件时,我放入的所有信息最终也会作为 app.config 文件中的条目。显然,存在一种同步机制:如果我更改了app.config 文件中的设置,Visual Studio 会在我下次在编辑器中打开它时提示我更新Settings.settings 文件。
我的问题是:
- 为什么是两种机制而不是一种?
- 使用
app.config而不是Settings.settings最常见的场景是什么?反之亦然? - 如果我的应用程序正在使用
Settings.settings,并且我在部署后更改了app.config中的值,会发生什么情况?Settings.settings无法同步,因为它已经编译和分发。
注意。我已经搜索过有关此主题的问题,但我更加困惑。例如,this question here 的答案是非常矛盾的,并不能说明太多。
注意 2。我知道 app.config 是设计时文件名,并且我熟悉 Visual Studio 将其复制并重命名为可执行文件夹的动态。
【问题讨论】:
-
除了西蒙在下面的出色回答之外,请参阅Ruben's answer 对类似问题。
标签: .net app-config settings.settings