.NET Core 多環(huán)境的配置、調(diào)試和部署
背景
工作需要配置多個環(huán)境,用于 開發(fā)Development、預(yù)覽Staging、生產(chǎn)Production。
微軟官方文檔-配置:https://docs.microsoft.com/zh-cn/aspnet/core/fundamentals/configuration/?view=aspnetcore-6.0
開始
.NET Core對多環(huán)境有很好的支持,默認(rèn)會讀取appsettings.{Environment}.json。
例如,appsettings.Production.json 和 appsettings.Development.json。
其中的Environment就是環(huán)境名稱

配置
創(chuàng)建環(huán)境

項(xiàng)目中已經(jīng)存在兩個配置文件,它們對應(yīng)的環(huán)境都是Development,也就是對應(yīng)會讀取appsettings.Development.json中的配置

創(chuàng)建配置文件,選擇【項(xiàng)目】

修改【環(huán)境變量】、【應(yīng)用URL】 ASPNETCORE_ENVIRONMENT=Staging ASPNETCORE_ENVIRONMENT=Production

繼續(xù)炮制一個Production

創(chuàng)建環(huán)境配置文件
接著創(chuàng)建環(huán)境對應(yīng)的配置文件,直接復(fù)制兩個appsettings.Development.json,并重命名為 appsettings.Staging.json appsettings.Production.json

在配置文件中寫入配置用以測試["CustomConfig": "這里是Development環(huán)境的配置"]

調(diào)試
這時已經(jīng)可以在啟動項(xiàng)目時選擇不同的環(huán)境配置了,若選擇Staging,就會讀取appsettings.Staging.json

修改控制器代碼,嘗試讀取配置
[ApiController]
[Route("[controller]")]
public class WeatherForecastController : ControllerBase
{
private readonly IConfiguration Configuration;
public WeatherForecastController(IConfiguration configuration)
{
Configuration = configuration;
}
[HttpGet]
public ActionResult GetCustomConfig()
{
return Content($@"讀取CustomConfig配置為:{Configuration["CustomConfig"]}");
}
}



部署
環(huán)境配置已經(jīng)配好了,接下來我希望將文件發(fā)布到不同環(huán)境,能自動讀取對應(yīng)配置文件。
右鍵網(wǎng)站->發(fā)布,創(chuàng)建發(fā)布配置

創(chuàng)建配置后會生成PublishProfiles文件夾

在{Environment}.pubxml文件中添加環(huán)境參數(shù):<EnvironmentName>Staging</EnvironmentName>

在站點(diǎn)點(diǎn)擊發(fā)布,到發(fā)布位置打開web.config,可以看到多了環(huán)境變量參數(shù)。

轉(zhuǎn)自:朱角
鏈接:cnblogs.com/HyattXu/p/16493466.html
