Внутри вашего Program.cs
файла вы можете получить переменную среды, которая будет представлять вашу текущую среду:
var builder = WebHost.CreateDefaultBuilder(args);
var currentEnv = builder.GetSetting("environnement");
используя это значение currentEnv
, вы сможете загрузить файл config.{currentEnv}.json
builder.AddJsonFile($"config.{currentEnv}.json", optional: false, reloadOnChange: true);
EDIT :
Если вы хотите сделать это в powershell, вы можете выполнить преобразование вашего файла конфигурации по умолчанию: appsettings.json, содержащий ключи, и appsettings.env.json, содержащий переопределение.
Чтобы преобразовать вашу конфигурацию, вы можете сделать что-то вроде этого:
Param(
[Parameter(Mandatory=$true)][string]$SpecificConfig
)
$defaultConfig = "AppSettings.json";
$settingsContent = ConvertFrom-Json $defaultConfig;
$specificContent = ConvertFrom-Json $SpecificConfig;
# Do this on each <property> to override
if (![string]::IsNullOrEmpty($specificContent.<property>))
{
$settingsContent.<property> = $specificContent.<property>;
}
Write-Host $settingsContent > $defaultConfig;