2021年3月28日 星期日

.NET Core App 使用「環境變數」讀取對應 appsettings.json 檔案

之前文章有介紹過如何透過組態設定輸出對應的 appsettings.json 檔,

亦有支援透過「環境變數」來讀取設定檔的實作方式,提供參考。

 

同樣先安裝套件

  • Microsoft.Extensions.Configuration.Json:提供Json 檔案取得組態設定的操作

  • Microsoft.Extensions.Configuration.Binder:提供更多方便取值的操作

  • Microsoft.Extensions.Configuration.EnvironmentVariables:提供環境變數取得組態設定的操作


加入相關 appsettings.json 檔案 ,並且設定從屬關係,這邊有個小技巧,若要編輯

專案檔(.csproj) 可直接在VS環境中於欲編輯的專案上點滑鼠左鍵二下即可


各appsettings 檔案內容如下


撰寫程式讀取設定檔內容

執行(F5)檢視輸出

為何會是 prod 呢?因為目前的專案尚未設定環境變數,所以程式中僅會被加入appsettings.json 檔案,而

檔案中的 message key 對應的值就是 prod 。

,此時若是我們加入設定如下


依照程式邏輯,appsettings.json 與 appsettings.Development.json 都會被加入

再次執行(F5)專案

由上圖可看出若有重覆的key ,後面讀取的會蓋掉前面的


此時,我們設定系統的「環境變數」




記得,這邊很重要,設定系統的環境變數後一定要將電腦「重新開機」,即使之後編輯既有

環境變數也是一樣,不然程式都只會吃到之前的


此時,我們在 Release 資料夾下找到的執行檔,點兩下執行


確實是輸出當時設定環境變數的值 stage


到這邊可以累積一些心得,提供參考

  • 環境變數若沒有設定就是吃 appsettings.json 內容

  • 若有相同的key 值,則後面的內容會蓋掉前面的內容

  • 可搭配組態管理員設定僅輸出對應的json檔

  • 設定系統環境後需重新啟動電腦


沒有留言:

張貼留言