.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>