Как преобразовать AppSettings в ASP.NET Core - PullRequest
0 голосов
/ 11 октября 2018

Я был убежден, что appsettings.json и его аналоги среды (dev, staging, production) заменили преобразования Web.config.

Это прекрасно работает в среде dev, где переменные для этих сред существуют вlaunchSettings.json

Однако, если я использую функцию публикации, настраивая публикацию для использования созданной мной конфигурации промежуточной сборки, преобразование не появляется.

Я читал в другом месте, где вам нужносоздать переменные окружения.В самом деле!Это то, к чему это пришло?Теперь у нас есть армада переменных системной среды для приложений, которые могут (или не могут) (со временем) работать на IIS (или другом) веб-сервере в этом окне.

В данный момент я вручную копирую и вставляю«постановка» appsettings.json после публикации.Мне уже нужно скопировать и вставить предварительно подготовленный файл Web.config в эту папку, поскольку он больше не доступен для настройки в IDE (но, что любопытно, он все еще создается во время операции публикации).

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

1 Ответ

0 голосов
/ 11 октября 2018

Это на самом деле сбивает с толку многих людей, так как конфигурации в Visual Studio на самом деле ничего не делают для приложения ASP.NET Core.Основные приложения ASP.NET предназначены для компиляции один раз для любой среды.Фактическая «среда», в которой он работает, определяется через config, а именно, переменная окружения ASPNETCORE_ENVIRONMENT.Другими словами, независимо от того, развернуты ли вы как Debug / Staging / Release / Wh независимо от того, что в Visual Studio, это один и тот же код приложения.(Единственный раз, когда это не так, если вы использовали директивы компилятора в вашем коде, например, #if DEBUG ... #endif. Это не очень распространено и, честно говоря, не рекомендуется в любом случае.)

Я думаю, что вы неправильно понялио переменных среды.Вы все еще можете использовать конфигурацию JSON и тому подобное в производстве.Единственная переменная окружения, которую нужно установить - это вышеупомянутые ASPNETCORE_ENVIRONMENT.

Длинные и короткие, если вы установите ASPNETCORE_ENVIRONMENT в «Производство», тогда ваш appsettings.Production.json будет загружен так, как вы ожидаете,Там нет трансформации, что происходит.Вместо этого специфичный для среды конфиг служит для расширения и переопределения других конфигов.

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