.net core 5.0 之使用多环境

例如:想区分开发环境和生产环境不同的配置文件(比如说本地测试数据库和正式的数据库等等),这个时候就会根据不同的环境配置不同的文件,也可以用多个startup来分离不同的环境,这里只是分离了配置文件。

当然个人觉得如果在Linux上面部署直接通过docker挂载配置文件会比较好,这里只是记录一下有这种方式可以达到效果

 

1. 引入需要的配置文件(添加新建项=》应用设置文件)

2. Program配置

这里是根据当前的环境的名称动态替换了引用的appsettings..json

 public static IHostBuilder CreateHostBuilder(string[] args) =>
            Host.CreateDefaultBuilder(args)
                .ConfigureAppConfiguration((hostingContext, config) => {
                     config.Sources.Clear();
                     var env = hostingContext.HostingEnvironment;
                     config.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
                           .AddJsonFile($"appsettings.{env.EnvironmentName}.json",
                                          optional: true, reloadOnChange: true);

                     config.AddEnvironmentVariables();

                     if (args != null)
                     {
                         config.AddCommandLine(args);
                     }
                    })
                .ConfigureWebHostDefaults(webBuilder =>
                {
                    webBuilder.UseStartup<Startup>();
                });

3. 修改launchSettings.json的ASPNETCORE_ENVIRONMENT来更改调试时对应不同的环境名称,到了这步已经可以满足调试的需求了

 

 

 

4. 如果需要部署在windows上面,修改打包好的webconfig文件,添加环境变量

 <environmentVariables>
        <environmentVariable name="ASPNETCORE_ENVIRONMENT" value="test" />
 </environmentVariables>

 

 

posted @ 2022-03-23 10:11  Joni是只狗  阅读(390)  评论(0编辑  收藏  举报