web.config覆盖了app.config ...为什么?

时间:2010-06-03 09:50:40

标签: .net configuration web-config app-config configuration-files

我有两个DLL:一个带有web.config,另一个带有app.config

我将连接字符串从web.config移动到app.config,以便其他DLL可以使用它。

现在,当我调用ConfigurationManager.GetSection("SomeSection")时,应用程序会查找web.config,它应该在寻找app.config。因为web.config位于一个单独的DLL中,所以它为什么这样做是没有意义的。

有人可以解释一下吗?

1 个答案:

答案 0 :(得分:7)

永远不会使用DLL的app.config。

EXE的app.config重命名为< Application> .exe.config,并由EXE使用

web.config由网站/应用程序使用。

基本上,如果Visual Studio有助于将一个app.config文件添加到DLL项目中,那么它所提供的就是复制并粘贴到相应的最终配置文件中的东西 - 或者是EXE的app.config,或者是web站点/应用程序的web.config。

@vikps评论:暂时忽略网站子目录和configSource的问题,不能在应用程序配置中涉及多个配置文件。在这种情况下,子目录或configSource都不会帮助您。

使用configSource,应用程序可以指定应从备用配置文件中读取整个配置节。但是,如果整个配置部分存在于另一个文件中(例如,你不能在web.config中有一个connectionStrings部分,并且还从另一个源加载一些更多的连接字符串),那么你只能这样做。