我对 Visual Studio 中用于存储和管理桌面应用程序设置的这两种机制的明显冗余感到非常困惑:
- 您可以使用 XML
app.config
文件,将项目添加到该<appSettings>
部分。这些可以使用ConfigurationManager
类从代码中检索。 - 或者,您可以使用 Settings.settings 文件通过编辑器添加单个设置。Visual Studio 将生成一个
Settings
类,用于在运行时对设置进行类型安全的检索。
这两种机制似乎服务于相同(或几乎相同)的目的。我知道存在一些差异,但我也对重叠及其后果感到困惑。例如,当我使用 Visual Studio 向Settings.settings
文件添加设置时,我放入的所有信息最终也会作为app.config
文件中的条目。显然,存在一种同步机制:如果我更改文件中的设置,Visual Studio 会在我下次在编辑器中打开文件时app.config
提示我更新文件。Settings.settings
我的问题是:
- 为什么有两种机制而不是一种?
app.config
使用over最常见的场景是什么Settings.settings
,反之亦然?- 如果我的应用程序正在使用并且我在部署后
Settings.settings
更改了一个值,会发生什么?由于它已经被编译和分发,因此不会发生app.config
同步。Settings.settings
笔记。我已经搜索过有关此主题的问题,但我更加困惑。例如,这里对这个问题的回答是相当矛盾的,并不能说明太多。
注意 2. 我知道这app.config
是一个设计时文件名,并且我熟悉 Visual Studio 将其复制并重命名为可执行文件夹的动态。