WebHost.CreateDefaultbuilder (args). Предполагается, что по умолчанию используется конфигурация как для веб-хоста, так и для приложения.
ConfigureAppConfiguration используется только для настройки приложения, а не хоста.
Код ниже работал раньше, без проблем.
После обновления с .net core 2.1 до 2.2 и обновления некоторых пакетов nuget для поддержки .net core 2.2 код больше не работает.
Я нашел грязный хак, но я хочу избавиться от этого, так как боюсь, что в будущем я могу получить некоторые нежелательные результаты.
return WebHost.CreateDefaultBuilder(args)
.UseContentRoot(AppDomain.CurrentDomain.BaseDirectory)
.UseConfiguration(ConfigurationService.Config)
// Dirty hack to temp fix my problem
//.ConfigureAppConfiguration(configuration => configuration.AddConfiguration(ConfigurationService.Config))
.UseStartup<Startup>()
.UseSerilog()
.Build();
ConfigurationService.Config - это статическая сборка ConfigurationRoot до вызова веб-хоста. ConfigurationService также начинает запись в журнал, определяет некоторые каталоги и другие вещи.
Возвращенная конфигурация содержит: environment, файл appsettings.json, файл custom.json и провайдеры командной строки.
Я знаю, что это работает для хоста из-за конфигурации kestrel в файле custom.json.
Перед всеми изменениями, если бы я добавил зависимость в IConfigurationRoot, я бы также увидел тех же поставщиков.
Теперь я вижу стандартные поставщики ядра .net на зависимости IConriguration
(цепочка, среда, appsettings, appsetting.development, командная строка) (самое главное, мой файл custom.json здесь отсутствует).
Я уже пробовал, не используя статический корень конфигурации значков, и собрал его тем же методом, который возвращает WebHost, но безрезультатно, поэтому он не имеет никакого отношения к моему ConfigurationService.