Использовать несколько сред в .NET Framework 4.7.2

#asp.net #.net-framework-version #appsettings

#asp.net #.net-framework-version #настройки приложений

Вопрос:

У меня есть проект .NET Framework 4.7.2, который использует службу приложений Azure, используемую для вызовов API. Я хочу использовать разные appsettings.json для каждой среды, у меня есть несколько сред (производственная, предварительная подготовка и многое другое …)

Я видел эти документы: https://learn.microsoft.com/en-us/aspnet/core/fundamentals/environments?view=aspnetcore-3.1

Но я не нашел ничего подобного, что работает с .NET Framework.

Как я должен это сделать?

Комментарии:

1. Вы также можете использовать Microsoft.Extensions.Configuration в .NET Old. Все Microsoft. Расширения. * пакеты представляют собой пакеты .NET Standard 2.0

2. @PanagiotisKanavos но как OP передаст желаемую среду из консольного приложения .NET Framework? Помимо переменных среды

3. @CodeCaster Я не понимаю, что вы пытаетесь сделать. Конечно, можно использовать переменные среды. Был ли более глубокий момент, который вы пытаетесь сделать, и я просто его упускаю?

4. @PanagiotisKanavos, у вас есть пример того, как это сделать в . Net framework 472? Я не знаю, как получить существующую конфигурацию значков в качестве источника и привязать к ней файл appsettings.json.

Ответ №1:

Я не думаю, что существует простой / поддерживаемый способ получения функций переопределения имени файла настроек, которые NET core имеет для .Net Framework, потому что он не имеет или не использует переменные среды и проекты / исполняемые файлы одинаково.

Но есть библиотека под названием Slow Cheetah, которая, похоже, делает это, что позволяет автоматически преобразовывать ваш app.config (или любой файл) при нажатии F5 в Visual Studio

В итоге я использовал один App.config файл с разными ключами — см. Ниже.

Отсюда вам просто нужно будет разработать свой собственный триггер для определения вашей среды разработки / разработки и т. Д. — Вероятно, на этапе сборки.

(В моем случае у меня было приложение ClickOnce, которое было либо опубликовано / prod, либо нет / dev — так что эта часть была простой)

 <connectionStrings>
  <add name="Dev"
connectionString="..." />
  <add name="Prod"
connectionString="..." />
</connectionStrings>