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>
達到同樣效果
參考
沒有留言:
張貼留言