假设一个项目同时包含App.config和Web.config文件,这些文件存在一些冲突信息。是否有哪些规则具有更高优先级的规则?或者应用程序必须忽略它们并抛出异常?
答案 0 :(得分: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的人来说,这也是一篇很棒的文章,解释了b / w ApplicationSettings , appSettings (app.config / web.config)和之间的差异ConfigurationSettings (.csdef / .cscfg):
http://haishibai.blogspot.com/2012/09/windows-azure-cloud-service.html