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
這樣,如果一個解決方案中有多個配置文件時我們總是可以將其合併到一個來進行配置。

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