Anda dapat menggunakan variabel lingkungan dan ConfigurationBuilder
kelas dalam Startup
konstruktor Anda seperti ini:
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();
}
Kemudian Anda membuat appsettings.xxx.json
file untuk setiap lingkungan yang Anda butuhkan, dengan "xxx" sebagai nama lingkungan. Perhatikan bahwa Anda dapat memasukkan semua nilai konfigurasi global dalam appsettings.json
file "normal" Anda dan hanya memasukkan hal-hal khusus lingkungan ke dalam file baru ini.
Sekarang Anda hanya membutuhkan variabel lingkungan yang dipanggil ASPNETCORE_ENVIRONMENT
dengan beberapa nilai lingkungan tertentu ("live", "staging", "production", apa pun). Anda dapat menentukan variabel ini di setelan proyek Anda untuk lingkungan pengembangan Anda, dan tentu saja Anda perlu menyetelnya di lingkungan pementasan dan produksi Anda juga. Cara Anda melakukannya tergantung pada jenis lingkungannya.
UPDATE: Saya baru menyadari Anda ingin memilih appsettings.xxx.json
berdasarkan konfigurasi build Anda saat ini . Ini tidak dapat dicapai dengan solusi yang saya usulkan dan saya tidak tahu apakah ada cara untuk melakukan ini. Namun, cara "variabel lingkungan" berfungsi dan mungkin juga menjadi alternatif yang baik untuk pendekatan Anda.