之前文章有介紹過如何透過組態設定輸出對應的 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檔
設定系統環境後需重新啟動電腦
沒有留言:
張貼留言