Поскольку структура немного другая, похоже, что конфигурация теперь загружена в класс Program. Но у нас здесь нет введенного ``, поэтому я попробовал это сам, используя переменную среды:
Код: Выделить всё
public class Program {
public static void Main(string[] args) {
CreateWebHostBuilder(args).Build().Run();
}
public static IWebHostBuilder CreateWebHostBuilder(string[] args) {
string envName = Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT");
string envConfigFile = $"appsettings.{envName}.json";
var config = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile(envConfigFile, optional: true);
var finalConfig = config.Build();
return WebHost.CreateDefaultBuilder(args)
.UseUrls("http://0.0.0.0:5000")
.UseConfiguration(finalConfig)
.UseStartup();
}
}
Код: Выделить всё
{
"MyConnectionString": "Server=xxx,Database=xxx, ..."
}
Код: Выделить всё
appsettings.Development.json
Код: Выделить всё
{
"MyConnectionString": ""
}
В соответствии с изменениями конфигурации ASP.NET Core 2, метод WebHost.CreateDefaultBuilder сам должен использовать новый подход ConfigureAppConfiguration и загружать конфигурацию, специфичную для среды. по умолчанию. Также в официальной документации говорится, что appsettings.{Environment}.json загружается автоматически. Но это не работает, а загрузка вручную не решает проблему:
Код: Выделить всё
return WebHost.CreateDefaultBuilder(args)
.UseUrls("http://0.0.0.0:5000")
.ConfigureAppConfiguration((builderContext, config) => {
IHostingEnvironment env = builderContext.HostingEnvironment;
config.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
.AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true, reloadOnChange: true);
})
.UseStartup();
Подробнее здесь: https://stackoverflow.com/questions/526 ... t-core-2-1