[C#] 使用 Fast Koala 在開發時期依據組態轉換檔獲得對應 Web.config 設定值

  • 558
  • 0
  • C#
  • 2016-12-25

面臨複雜的開發測試環境,常需要切換參數來進行本機/測試機的偵錯模式測試

但偏偏組態轉換檔只有在發行時才會對 Web.config 發揮作用

這時可以透過 Fast Koala 來實現建置時期 Web.config 資訊轉換之願望

動機

目前專案開發環境身處自家公司與客戶公司兼容環境中,工作流程都會是在自家公司環境測試無誤後上板至客戶端,但在開發時期常需要進行雙邊的偵錯模式測試 (特定環境異常資料常常是造成錯誤的元凶),因此需要切換不同參數(資料庫連線字串、服務位置...) 來符合不同環境需求,無奈組態轉換檔 (ex. Web.Debug.config) 僅在發行時對 Web.config 發揮作用,若想要在偵錯模式進行調整,往往需要手動以註解方式來切換 Web.config 連線字串等資訊,超級無敵困擾。好加在現在可以透過 Fast Koala 實現我們的需求,以下說明。

 

案例說明

測試專案很單純就是從 Web.config 中取得 Key 為 Environment 的 Value 來顯示在畫面上。

Web.config 中 Environment 值為 Local

最後就是在 View 中印出 Environemnt 資訊 

執行結果

若想要切換 Debug 組態後套用 Web.Debug.config 進行資訊的轉換時會做以下調整

點選 Preview Transform 驗證一下取代如我們所需要的方式進行

在 Preview 中轉換語法確實發揮作用,將 Environment 調整為 Debug 文字

最後將組態設定為 Debug 執行啟動專案,看到畫面還是吃 Web.config 的資料 (因 Web.Debug.config 僅在發行時對 Web.config 發揮異動作用) ,因此如果要達到我們所需要的需求,就需要是在編譯時期可以自動依照組態轉換檔設定調整 Web.config 資訊,而本篇文章介紹的 Fast Koala 就可以實現這個機制,請繼續看下去。

 

安裝

可以直接從 官方網站 下載安裝,或者看看作者 GitHub 提供的相關資訊。

本身有些限制如下,如果有此需求的朋友剛好是以下型態的專案,就請略過此篇文章吧

  1. Web sites are not supported and will never be supported.
  2. This tool enables build-time transformations for ASP.NET 4.6-or-below web apps, including ASP.NET MVC 5.
  3. ASP.NET 5 is not supported; it might not ever be supported.

 

實作

接著上述案例,我們可以發現在 Web.config 中按滑鼠右鍵會出現 Enable build-time transformations 選項

出現警語,告知 Web.config 將會在每次建置時重新產出

同意後,選擇設定新建立 Web.base.config 於哪個資料夾位置中

產出新的 Web.Base.config 檔案,內容其實就是原本的 Web.config 資訊,並且具原有 Debug 與 Release 兩種組態轉換檔 ,重點如下:

  1. 在每次建置時期,會透過 Web.Base.config 與選定組態轉換檔 (ex. Web.Debug.config) 來更新 Web.config
  2. 後續僅需針對 Web.Base.config 及各組態轉換檔進行調整即可
  3. 由於 Web.config 將不斷刷新,因此不建議加入版控

瀏覽一下 Web.Base.config 內容 (與原本的 Web.config 資訊相同)

瀏覽一下 Web.Debug.config 內容 

瀏覽一下 Web.Relase.config 內容 

 

接著見證奇蹟的時候來臨了

當組態切為 Debug 後編譯

專案中的 Web.config 就直接依照 Web.Base.config + Web.Debug.config 轉換結果呈現

執行結果

 

當組態切為 Release 後編譯

專案中的 Web.config 就直接依照 Web.Base.config + Web.Release.config 轉換結果呈現

執行結果

 

最後由於Web.config會依值不斷被外部修改,因此可以考慮勾選以下選項,避免此擾人訊息不斷出現。

 

 

參考資訊

Fast Koala GitHub

好用的VISUAL STUDIO-XML文件轉換擴充套件


希望此篇文章可以幫助到需要的人

若內容有誤或有其他建議請不吝留言給筆者喔 !