Ты не. Это не так, как конфигурация работает в ASP.NET Core. Конфигурация переопределена , а не преобразована . Существует порядок действий, применяемых к различным источникам конфигурации, в основном это порядок, в котором они зарегистрированы. Значением по умолчанию является JSON
Если вам требуется, чтобы конфигурация изменялась в зависимости от среды, вы будете полагаться на специфичные для среды файлы JSON (для общей конфигурации) или переменные среды и / или что-то вроде хранилища ключей Azure (для секретов). Так как все это происходит позже при регистрации конфигурации, любое заданное вами значение будет переопределять значения в вашем appsettings.json
.
Для таких вещей, как специфичный для среды JSON, загружаемый файл зависит от значения ASPNETCORE_ENVIRONMENT
, которое может быть задано как переменная среды или передано в качестве аргумента командной строки --environment
. В любом случае установленное значение соответствует части {environment}
из appsettings.{environment}.json
. Другими словами, если вы установите среду как Production
, тогда в конфигурацию будет загружен appsettings.Production.json
, если он присутствует. Переменные среды привязаны к самой среде, поэтому не зависят от какого-либо конкретного значения среды.