2025年11月17日 星期一

ASP.NET Core appsettings.json

asp.net core 專案的設定檔已經由原本 Web.config 檔,轉而由 appsettings.json 檔案取代,這篇

是想再次紀錄一下相關機制,方便後續來回想



建立一個 Minimal Web API 站台,記得範本選「空的ASP.NET Core」


選取確認後建立專案


可以看到預設 appsettings.Development.json 檔案一開始就存在


說明 appsettings.json 與appsettings.Development.json 關係

主要是以 appsettings.json 為主,大部分的共通設定建議放在這裡,其他需求依據環境給予

對應的值,則適合放到對應的環境設定檔中


ASP.NET Core 的預設環境參數區分有三個(參考),分別是 

  • Development、Staging、Production


看一下設定值的部分是如何運作與取代的,先分別加入 「Mykey」參數

appsettings.json


appsettings.Development.json


此時在 Program 檔案,換上撈取 Mykey 的語法


實際執行

可以看到 Development 的值取代了 Default


其中 ASPNETCORE_ENVIRONMENT 參數是由 launchSettings.json 這個檔案設定的,

若此時將設定值改為 Staging





改成 Production 同樣會是相同的效果


以上是開發時的情境,可透過修改 launchSettings.json 的 ASP.NETCORE_ENVIROMENT

參數,來讓應用程式判斷該使用哪個 appsettings 檔


若是要發行專案,透過指令 dotnet publish -c staging 發行,發行的專案會在

bin\Staging\net9.0\ 目錄下產生相關檔案,類似下圖


發行後架設IIS ,並且開啟網頁


但是檢視內容,既然會是 Production?因為我們發執行若沒有指定環境變數,一般就是

被判斷為 Production,所以該如何設定對應的環境變數,如下指令

dotnet publish -c Staging -p:EnvironmentName=Staging


執行後 Web.config 檔內容會多個環境參數



這樣再重新看一下剛剛的網頁,就會出現 staging 了


若是透過Visual Studio 的Publish 功能發佈,可在設定檔的部分,加入<EnvironmentName>Beta</EnvironmentName>



達到同樣效果



參考


沒有留言:

張貼留言