我有两个DLL:一个带有web.config,另一个带有app.config
我将连接字符串从web.config移动到app.config,以便其他DLL可以使用它。
现在,当我调用ConfigurationManager.GetSection("SomeSection")
时,应用程序会查找web.config,它应该在寻找app.config。因为web.config位于一个单独的DLL中,所以它为什么这样做是没有意义的。
有人可以解释一下吗?
答案 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部分,并且还从另一个源加载一些更多的连接字符串),那么你只能这样做。