.Net Core 多环境的配置、调试和部署

  • .Net Core 多环境的配置、调试和部署已关闭评论
  • 162 次浏览
  • A+
所属分类:.NET技术
摘要

工作需要配置多个环境,用于 开发Development、预览Staging、生产Production。参考文献:
微软官方文档-配置


背景

工作需要配置多个环境,用于 开发Development、预览Staging、生产Production。

参考文献:
微软官方文档-配置

开始

.NetCore对多环境有很好的支持,默认会读取appsettings.{Environment}.json。 例如,appsettings.Production.json 和 appsettings.Development.json。
其中的Environment就是环境名称
.Net Core 多环境的配置、调试和部署

配置

创建环境

.Net Core 多环境的配置、调试和部署

项目中已经存在两个配置文件,它们对应的环境都是Development,也就是对应会读取appsettings.Development.json中的配置

.Net Core 多环境的配置、调试和部署

创建配置文件,选择【项目】
.Net Core 多环境的配置、调试和部署

修改【环境变量】、【应用URL】
ASPNETCORE_ENVIRONMENT=Staging
ASPNETCORE_ENVIRONMENT=Production
.Net Core 多环境的配置、调试和部署
继续炮制一个Production
.Net Core 多环境的配置、调试和部署

创建环境配置文件

接着创建环境对应的配置文件,直接复制两个appsettings.Development.json,并重命名为
appsettings.Staging.json
appsettings.Production.json
.Net Core 多环境的配置、调试和部署
在配置文件中写入配置用以测试["CustomConfig": "这里是Development环境的配置"]
.Net Core 多环境的配置、调试和部署

调试

这时已经可以在启动项目时选择不同的环境配置了,若选择Staging,就会读取appsettings.Staging.json
.Net Core 多环境的配置、调试和部署
修改控制器代码,尝试读取配置

点击查看代码
[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"]}");     } } 

![image](https://img2022.cnblogs.com/blog/1307956/202207/1307956-20220719112233207-738534554.png)

.Net Core 多环境的配置、调试和部署
.Net Core 多环境的配置、调试和部署

部署

环境配置已经配好了,接下来我希望将文件发布到不同环境,能自动读取对应配置文件。

右键网站->发布,创建发布配置
.Net Core 多环境的配置、调试和部署
创建配置后会生成PublishProfiles文件夹
.Net Core 多环境的配置、调试和部署
在{Environment}.pubxml文件中添加环境参数:<EnvironmentName>Staging</EnvironmentName>
.Net Core 多环境的配置、调试和部署
在站点点击发布,到发布位置打开web.config,可以看到多了环境变量参数。
.Net Core 多环境的配置、调试和部署