Ознакомьтесь с документацией для CreateDefaultBuilder()
Примечания
Следующие значения по умолчанию применяются к возвращенному WebHostBuilder:
- использовать Kestrel в качестве веб-сервера и настроить его с помощью провайдеров конфигурации приложения,
установить ContentRootPath на результат GetCurrentDirectory (),
загрузить IConfiguration из appsettings.json
и appsettings.[EnvironmentName].json
,
загрузить IConfiguration из секретов пользователя, когда EnvironmentName имеет значение «Разработка», используя сборку ввода,
загрузить IConfiguration из переменных среды,
загрузить IConfiguration из предоставленных аргументов командной строки,
настроить ILoggerFactory для входа в консоль и отладки вывода,
и включите интеграцию с IIS.
Номер 3 в этом списке всегда будет смотреть на значение переменной среды ASPNETCORE_ENVIRONMENT
(по умолчанию «Производство», если не указано) и пытается загрузить файл appsettings с этим именем.
Вместо того, чтобы изменять свой код или использовать директивы препроцессора, просто измените значение этой переменной среды (например, на «Разработка»).
Вот как работает ваш launchSettings.json
файл:
"profiles": {
"IIS Express": {
"commandName": "IISExpress",
"launchBrowser": true,
"launchUrl": "api/values",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
},
...
Не боритесь с CreateDefaultBuilder()
- ваш опубликованный код делает так много шагов, что метод уже делает для вас (загрузка файлов, установка базового пути и т. Д.).
Это Program.cs по умолчанию, предоставленный вам с проектами ASP.Net Core, и он будет работать для вас просто отлично:
public class Program
{
public static void Main(string[] args)
{
CreateWebHostBuilder(args).Build().Run();
}
public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>();
}
Кроме того, просто обратите внимание, что вы загружаете специфичные для среды файлы до основного файла appsettings.json. Обычно вы хотите сделать это в другом порядке.