คุณสามารถใช้ตัวแปรสภาพแวดล้อมและ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" อะไรก็ได้) คุณสามารถระบุตัวแปรนี้ในการตั้งค่าโปรเจ็กต์สำหรับสภาพแวดล้อมการพัฒนาของคุณและแน่นอนว่าคุณต้องตั้งค่าในสภาพแวดล้อมการจัดเตรียมและการใช้งานจริงด้วย วิธีที่คุณทำขึ้นอยู่กับสภาพแวดล้อมแบบนี้
UPDATE:ฉันเพิ่งตระหนักคุณต้องการที่จะเลือกappsettings.xxx.jsonขึ้นอยู่กับปัจจุบันของคุณสร้างการกำหนดค่า สิ่งนี้ไม่สามารถทำได้ด้วยวิธีแก้ปัญหาที่ฉันเสนอและฉันไม่รู้ว่ามีวิธีทำหรือไม่ อย่างไรก็ตามวิธี "ตัวแปรสภาพแวดล้อม" ได้ผลและอาจเป็นทางเลือกที่ดีสำหรับแนวทางของคุณด้วย