.NET 多环境切换

参考

在 ASP.NET Core 中使用多个环境 | Microsoft Learn

.Net Core 多环境的配置、调试和部署 – 朱角 – 博客园 (cnblogs.com)

开发环境

创建配置文件

image.png

分别新建配置文件 Prodution 和 Staging

填写内容 ASPNETCORE_ENVIRONMENT = Prodution or Staging

image.png

新建json文件

复制appsettings.Development.json两次,分别重命名为appsettings.Production.json 和 appsettings.Staging.json

并且分别新建 Tip 属性,标明当前环境

image.png

改写Controller

[ApiController]
[Route("[controller]/[action]")]
public class WeatherForecastController : ControllerBase
{
    private readonly IConfiguration Configuration;

    public WeatherForecastController(IConfiguration configuration)
    {
        Configuration = configuration;
    }

    [HttpGet]
    public ActionResult GetCustomConfig()
    {
        return Content($@"读取CustomConfig配置为:{Configuration["Tip"]}");
    }
}

测试

  • 默认情况下读取的是开发环境配置(appsettings.Production.json)
  • image.png

    image.png

  • 切换为 Staging 预览环境
  • image.png

    输出正确

    image.png

  • 选择 Production 生产环境
  • image.png

    输出正常

    image.png

    项目发布

    发布项目

    点击发布后选择发布为文件,然后无脑下一步

    image.png
    image.png

    修改配置文件

    发布后会生成PublishProfiles文件夹

    image.png

    将子文件复制,并且分别改名为Production.pubxml 和 Staging.pubxml,

    并且分别添加一行
    xxxx

    image.png

    image.png

    指定发布环境

    可以在发布前指定环境配置

    image.png

    发布后的环境配置,可以在web.config中查看

    image.png

    测试

    修改Program.cs代码,这样即使是在生产环境也能使用swagger

    image.png

    生产环境

    image.png

    项目已部署到iis中,输出正确

    image.png

    预览环境

    修改 web.config 文件中 value 的值

    image.png

    刷新swagger页面,输出正确

    image.png

    上一篇 GitHub Copilot让陶哲轩感到“不安”
    下一篇 架构设计的技术陷阱:如何避免八个致命的错误