Ви можете використовувати змінні середовища та ConfigurationBuilder
клас у своєму Startup
конструкторі так:
public Startup(IHostingEnvironment env)
{
var builder = new ConfigurationBuilder()
.SetBasePath(env.ContentRootPath)
.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
.AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true)
.AddEnvironmentVariables();
this.configuration = builder.Build();
}
Потім ви створюєте appsettings.xxx.json
файл для кожного необхідного вам середовища, а "xxx" - це ім'я середовища. Зверніть увагу, що ви можете помістити всі глобальні значення конфігурації у свій "звичайний" appsettings.json
файл і до цих нових файлів додавати лише матеріали, що стосуються середовища.
Тепер вам потрібна лише змінна середовища, що викликається ASPNETCORE_ENVIRONMENT
з певним значенням середовища ("live", "staging", "production", що завгодно). Ви можете вказати цю змінну в налаштуваннях проекту для свого середовища розробки, і, звичайно, вам потрібно встановити її також у своєму проміжному та виробничому середовищі. Те, як ви це робите там, залежить від того, яке це середовище.
ОНОВЛЕННЯ: Я щойно зрозумів, що ви хочете вибрати на appsettings.xxx.json
основі вашої поточної конфігурації збірки . Цього неможливо досягти за допомогою запропонованого мною рішення, і я не знаю, чи є спосіб зробити це. Однак спосіб "змінної середовища" працює і може також бути хорошою альтернативою вашому підходу.