При использовании IConfigurationBuilder в приложении .NET Core 2.1 с универсальным хостом я настраиваю 4 источника;но после объема ConfigureAppConfiguration есть 6 источников.
В какой-то момент 2 уже загруженный дополнительный источник добавляется во второй раз в порядке, который приводит к скрытию значений appsettings.Environment.json.Я также попытался удалить конфигурацию hostsettings.json и убедился, что это не влияет.Это для веб-задания Azure с использованием WebjobsSDK 3.0 и .Net Core 2.1
var builder = new HostBuilder()
.ConfigureHostConfiguration(configurationBuilder =>
{
//This is to do some basic host configuration and should only add 2 sources
configurationBuilder.SetBasePath(Directory.GetCurrentDirectory());
configurationBuilder.AddJsonFile("hostsettings.json", optional: true);
configurationBuilder.AddEnvironmentVariables(prefix: "APPSETTING_ASPNETCORE_");
})
.ConfigureAppConfiguration((hostContext, configurationBuilder) =>
{
//at this point there are 0 sources in the sources
IHostingEnvironment env = hostContext.HostingEnvironment;
configurationBuilder.SetBasePath(Directory.GetCurrentDirectory());
configurationBuilder.AddJsonFile("appSettings.json", optional: false, reloadOnChange: true)
.AddJsonFile($"appSettings.{env.EnvironmentName}.json", optional: true,
reloadOnChange: true);
configurationBuilder.AddEnvironmentVariables(prefix: "APPSETTING_ASPNETCORE_");
//at this point there are 4 sources
})
.ConfigureServices((hostContext, servicesCollection) =>
{
//now there are 6, 2 additional source that are duplicates
servicesCollection.Configure<IConfiguration>(hostContext.Configuration);
})
Я ожидаю, что поставщик конфигурации будет иметь только 4 источника, включая ChainedConfigSource. У меня есть настройкабыть включеннымНо добавлены 2 дополнительных источника, которые являются дубликатами appsettings.json и переменных среды, которые я объявил перед загрузкой appsettings.environment.json для конкретной среды.
Теперь при добавлении в класс настроек appsettings.jsonбыли добавлены последними и возвращены через appsettings.environment.json