Bạn có thể sử dụng các biến môi trường và ConfigurationBuilder
lớp trong hàm tạo của mình Startup
như sau:
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();
}
Sau đó, bạn tạo một appsettings.xxx.json
tệp cho mọi môi trường bạn cần, với "xxx" là tên môi trường. Lưu ý rằng bạn có thể đặt tất cả các giá trị cấu hình chung vào appsettings.json
tệp "bình thường" của mình và chỉ đặt nội dung cụ thể của môi trường vào các tệp mới này.
Bây giờ bạn chỉ cần một biến môi trường được gọi ASPNETCORE_ENVIRONMENT
với một số giá trị môi trường cụ thể ("live", "staging", "production", bất cứ điều gì). Bạn có thể chỉ định biến này trong cài đặt dự án cho môi trường phát triển của mình và tất nhiên bạn cũng cần đặt biến này trong môi trường dàn dựng và sản xuất của mình. Cách bạn thực hiện ở đó tùy thuộc vào loại môi trường này.
CẬP NHẬT: Tôi vừa nhận ra rằng bạn muốn chọn appsettings.xxx.json
dựa trên cấu hình bản dựng hiện tại của mình . Điều này không thể đạt được với giải pháp đề xuất của tôi và tôi không biết liệu có cách nào để làm điều này hay không. Tuy nhiên, cách "biến môi trường" hoạt động và cũng có thể là một thay thế tốt cho cách tiếp cận của bạn.