App.config vs Web.config:哪个优先?

use*_*923 9 .net c# configuration app-config web-controls

假设一个项目同时包含App.config和Web.config文件以及一些有冲突的信息.是否有哪些规则具有更高优先级的规则?或者应用程序必须忽略它们并抛出异常?

小智 7

从MSDN for .NET 4.5:

在Visual Studio中配置服务时,请使用Web.config文件或App.config文件来指定设置.配置文件名的选择取决于您为服务选择的托管环境.如果您使用IIS来托管服务,请使用Web.config文件.如果您使用的是任何其他托管环境,请使用App.config文件.

在Visual Studio中,名为App.config的文件用于创建最终配置文件.实际用于配置的最终名称取决于程序集名称.例如,名为"Cohowinery.exe"的程序集的最终配置文件名为"Cohowinery.exe.config".但是,您只需要修改App.config文件.在编译时,对该文件所做的更改将自动发送到最终的应用程序配置文件.

在使用App.config文件时,配置系统会在应用程序启动并应用配置时将App.config文件与Machine.config文件的内容合并.此机制允许在Machine.config文件中定义机器范围的设置.App.config文件可用于覆盖Machine.config文件的设置; 您还可以锁定Machine.config文件中的设置,以便使用它们.在Web.config情况下,配置系统将导致应用程序目录的所有目录中的Web.config文件合并到应用的配置中.有关配置和设置优先级的更多信息,请参阅System.Configuration命名空间中的主题.

对于那些使用MS Azure的人来说,这也是一篇很棒的文章,解释了不同的应用设置,appSettings(app.config/web.config)和ConfigurationSettings(.csdef/.cscfg):

http://haishibai.blogspot.com/2012/09/windows-azure-cloud-service.html