设置文件与app.config的区别

27
可能重复:
什么是app.config文件和XYZ.settings文件之间的区别? 我并不完全理解设置文件和配置文件之间的交互/差异。如果我向设置文件添加一个条目,它也会被添加到app.config中。这是否意味着在app.config中更改该值将更新设置?如果不是,那么如何在实时应用程序中更新设置?使用设置文件的一般目的是什么,而不是直接放在app.config中?

类似于https://dev59.com/sGcs5IYBdhLWcg3wJQi8,提供了额外的见解。 - Donal Lafferty
1个回答

17
据我所知,通过查看,设置文件和设计器提供了一种包装配置文件的方式。设置设计器控制配置文件中的某些值,但还修改了您属性目录中的 .settings 文件,并更改您的 Settings.Designer.cs 文件中生成的代码。
请注意,在配置文件中,值没有任何类型,但在 .settings 文件中,它们有类型。现在打开 Settings.Designer.cs。您会发现在那里生成的代码将值从配置文件中取出,并将它们转换为在 .settings 文件或设置设计器中指定的适当类型。因此,它为您配置文件中的值提供了一个类型安全的接口。如果您更改配置文件中的值,则下次进入设置设计器时,它将询问您是否要更新 .settings 以反映这些更改。
所以回答您的问题,一旦应用程序部署,只要可以转换为适当的类型,您就可以更改配置文件中的值,否则我想它会在 Settings.Designer.cs 中失败。我能看到的唯一目的似乎是类型安全性以及设计器方便处理配置文件的 XML,而不是手动编辑文件。
另外,记住,由于配置文件不是版本化文件,安装程序不会在客户机上更新它们。它不会允许更改用户所做的任何更改。因此,一旦部署,如果您将自己的更改放入需要用户的配置中,他们将不得不手动复制这些更改。

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接