设置文件vs app.config

时间:2010-03-29 16:12:23

标签: .net settings config

  

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

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

1 个答案:

答案 0 :(得分:16)

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

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

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

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