Oluşturucunuzdaki ortam değişkenlerini ve ConfigurationBuildersınıfı şu şekilde kullanabilirsiniz 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();
}
Daha sonra appsettings.xxx.jsonihtiyacınız olan her ortam için ortam adı "xxx" olacak şekilde bir dosya oluşturursunuz . Tüm global konfigürasyon değerlerini "normal" appsettings.jsondosyanıza koyabileceğinizi ve sadece ortama özgü şeyleri bu yeni dosyalara koyabileceğinizi unutmayın.
Şimdi sadece ASPNETCORE_ENVIRONMENTbelirli bir ortam değeri ile adlandırılan bir ortam değişkenine ihtiyacınız var ("canlı", "aşamalandırma", "üretim", her neyse). Bu değişkeni geliştirme ortamınız için proje ayarlarınızda belirtebilirsiniz ve elbette onu hazırlık ve üretim ortamlarınızda da ayarlamanız gerekir. Orada nasıl yapacağınız, bunun ne tür bir ortam olduğuna bağlıdır.
GÜNCELLEME:appsettings.xxx.json Şu anki yapı yapılandırmanıza göre seçim yapmak istediğinizi fark ettim . Bu, önerdiğim çözümle başarılamaz ve bunu yapmanın bir yolu olup olmadığını bilmiyorum. Ancak "ortam değişkeni" yöntemi işe yarar ve yaklaşımınız için iyi bir alternatif olabilir.