在开发过程中,一个服务通常都有多个环境,所以每次调试或排查问题时都要手动更改appsettings.json或appsettings.Development.json里面的配置,非常麻烦。
但是可以通过读取ASPNETCORE_ENVIRONMENT环境变量的不同来实现读取不同的配置文件。以下就是配置过程。
目录
根据ASPNETCORE_ENVIRONMENT读取指定文件
根据ASPNETCORE_ENVIRONMENT读取指定文件
1.添加依赖
// 命令行执行以下命令添加依赖包
dotnet add package Microsoft.Extensions.DependencyInjection --version 6.0.0
// Program.cs添加依赖
using Microsoft.Extensions.DependencyInjection;
2.创建几个自定义配置文件,如下图创建了appsettings.Local.json和appsettings.Test.json文件。
3.在Program.cs加入以下代码:
public class Program
{
public static void Main(string[] args)
{
CreateHostBuilder(args).Build().Run();
}
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.ConfigureServices(
sc =>
{
sc.AddSingleton<IConfiguration>(sp =>
{
var evn = sp.GetService<IHostEnvironment>();
Console.WriteLine($"加载配置:appsettings.{evn.EnvironmentName}.json");
return new ConfigurationBuilder()
.SetBasePath(evn.ContentRootPath)
// 默认读取appsettings.json
.AddJsonFile($"appsettings.json")
// 如果存在环境配置文件,优先使用这里的配置
.AddJsonFile($"appsettings.{evn.EnvironmentName}.json", true, true)
.Build();
});
}
).UseStartup<Startup>();
});
}
4.然后启动时就会根据ASPNETCORE_ENVIRONMENT环境变量来读取不同的配置。如ASPNETCORE_ENVIRONMENT = Test,则会读取appsettings.Test.json文件。
Visual Studio设置
1.右击项目名,点击属性。然后点击新建,配置文件名称输入“Test”后点击确定。
2.点击 “启动”,选择ISS Express选项,添加ASPNETCORE_ENVIRONMENT,值为Test。最后ctrl+s 保存
3.然后如图启动下拉中就会出现刚刚创建的“Test”选项,选择,点击启动就会读取appsettings.Test.json配置文件啦。
4.效果如图
(1)appsettings.Test.json
(2)控制器
(3) 访问
大工告成,是不是很简单^_^