VS多个config文件合并详解

在一个visual studio解决方案的多个项目中,可能有多个项目都会存在配置文件,app.config或者web.config。这里是个人在开发中的一些总结:

关于配置文件的加载顺序:
1、如果在当前运行页面所在的目录下有web.config文件,则查找是否存在所需要的节点,如果存在则返回结果,并停止下一步地查找。

2、如里所在目录不存在web.config配置或者配置文件里没有所需要的节点,则查找它所在的上一级目录的配置文件中的节点,直到网站根目录。

3、如果网站根目录中都不存在web.config或者所需要的配置节点,转而到“windows目录\Microsoft.NET\Framework\对应.net版本\config\web.config”中去查找。

4、如果第3条中还没找到,继续到“windows目录\Microsoft.NET\Framework\对应.net版本\config\machine.config”中去查找。

关于多个项目的config合并
例如,一个asp.net 网站有一个Web.Config文件,且网站又引用了一个类库项目,类库项目需要调用webService,这时这个类库项目会生成一个app.config文件,我们可以在编译的时候右击-属性-复制到输出目录属性设置为【如果较新则复制】,生成操作设置为【内容】将app.config文件在编译时输出(如果不做设置,那么会直接将配置程序编译在类库的dll文件里面,这是不好的选择,因为通常开发时我们引用的web服务不是正式环境的,而在正式发布时需要修改引用地址来发布,开发时又需要改回到开发地址.存在频繁切换的问题而且还很容易出错)。这样在发布web时我们会遇到发布文件中存在网站本身的web.config,还有一个依赖dll的app.config.这也是不合理的。 因此接下来我们需要将app.config的配置信息合并到web.config中。步骤如下截图:
待合并的app.config
合并完成后,我们依然可以输出依赖dll的app.config,因为根据优先级原则会在web.config中找到配置值而不会在app.config中查找配置信息。

合并完成后的web.config
这样,如果一个解决方案中有多个配置文件时我们总是可以将其合并到一个来进行配置。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章