Oluşturucunuzdaki ortam değişkenlerini ve ConfigurationBuilder
sı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.json
ihtiyacı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.json
dosyanıza koyabileceğinizi ve sadece ortama özgü şeyleri bu yeni dosyalara koyabileceğinizi unutmayın.
Şimdi sadece ASPNETCORE_ENVIRONMENT
belirli 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.