在我的项目中,我有以下文件:
appsettings.json 和 appsettings.Development.json。
因此,想法是在开发环境中加载文件 appsettings.Development.json,并在生产环境中加载 appsettings.json。
在 launchSettings.json 中,我将 ASPNETCORE_ENVIRONMENT 更改为 Development:
"profiles": {
"IIS Express": {
"commandName": "IISExpress",
"launchBrowser": true,
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
}
}
这个工作符合预期:
env.IsDevelopment() is true
appsettings 是这样加载的:
var config = new ConfigurationBuilder().SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("appsettings.json", true, true)
.Build();
但仍然所有的值都是从 appsettings.json 中加载而不是 appsettings.Development.json。
我也尝试了:
var config = new ConfigurationBuilder().SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("appsettings.json", true, true)
.AddJsonFile("appsettings.Development.json", true, true)
.Build();
但是在这种情况下,值始终从最后一个文件appsettings.Development.json加载,即使:
env.IsDevelopment() is false