ASP Net Базовая публикация в нескольких средах - PullRequest
0 голосов
/ 14 февраля 2020

Исходя из. NET MVC мира, я запутался в том, как. NET Ядро имеет дело с развертываниями в нескольких средах. (Dev, Test, Production)

Используемые здесь технологии: Bamboo (Build Server) + Octopus Deploy (CD).

. NET В ядре вместо этого используются настройки приложений, и веб .config используется только для хостинга IIS.

После прочтения некоторых руководств, предлагающих добавить переменную среды "ASPNETCORE_ENVIRONMENT" в проект, чтобы определить среду, в которой он находится в данный момент.

Это команда Раньше я строил из бамбука. dotnet publish -c Test ${bamboo.build.working.directory}\HelloWorld.sln

Вопросы ... 1. У меня есть настройки приложений. json, appsettings.Test. json, настройки приложений. Производство. json. Похоже, приложение знает, из какого файла appsettings нужно читать, основываясь на значении ASPNETCORE_ENVIRONMENT.

Как я могу сказать Octopus использовать правильный файл в зависимости от среды, в которой я развертываюсь?

1 Ответ

0 голосов
/ 18 февраля 2020

Наличие переменных и нескольких конфигурационных файлов усложняет задачу, особенно если вы используете Octopus Deploy.

Единственная причина наличия нескольких файлов .environment.json состоит в том, что они, вероятно, хранятся в исходном контроле, и их значения уже установлены - поэтому переменные среды, вероятно, все исходят из исходного кода, а не из менеджера релизов. , В противном случае это были бы идентичные файлы, и Octopus все равно преобразовывал бы их (что делает их избыточными)

Мой совет - перейти к одному файлу и переместить переменные в Octopus Deploy. Удалите ASPNETCORE_ENVIRONMENT, и вам нужен только один файл appSettings.json, который можно преобразовать во время развертывания в любую среду.

ASP. NET Основные веб-приложения - Документация по развертыванию Octopus

Надеюсь, это поможет

...