Совместное использование / преобразование настроек приложений в проектах и ​​средах - PullRequest
0 голосов
/ 22 марта 2019

Я получил решения Visual Studio с несколькими проектами (функциональными приложениями и веб-API) и уровнем данных, который используется всеми проектами. Я настроил решение так, чтобы все проекты имели одинаковую конфигурацию (appsettings.json) на основе этой статьи: https://andrewlock.net/sharing-appsettings-json-configuration-files-between-projects-in-asp-net-core/

Все проекты основаны на ядре .net.

Я настроил сборку и конвейер выпуска для среды разработки. Но мне нужна тестовая и производственная среда. Как преобразовать общую конфигурацию перед ее выпуском в тестовую и производственную среду?

1 Ответ

1 голос
/ 22 марта 2019

Ты не. Это не так, как конфигурация работает в ASP.NET Core. Конфигурация переопределена , а не преобразована . Существует порядок действий, применяемых к различным источникам конфигурации, в основном это порядок, в котором они зарегистрированы. Значением по умолчанию является JSON

Если вам требуется, чтобы конфигурация изменялась в зависимости от среды, вы будете полагаться на специфичные для среды файлы JSON (для общей конфигурации) или переменные среды и / или что-то вроде хранилища ключей Azure (для секретов). Так как все это происходит позже при регистрации конфигурации, любое заданное вами значение будет переопределять значения в вашем appsettings.json.

Для таких вещей, как специфичный для среды JSON, загружаемый файл зависит от значения ASPNETCORE_ENVIRONMENT, которое может быть задано как переменная среды или передано в качестве аргумента командной строки --environment. В любом случае установленное значение соответствует части {environment} из appsettings.{environment}.json. Другими словами, если вы установите среду как Production, тогда в конфигурацию будет загружен appsettings.Production.json, если он присутствует. Переменные среды привязаны к самой среде, поэтому не зависят от какого-либо конкретного значения среды.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...