Где находится файл .Net Core MVC appsettings.json для отладчика IIS Express в VS 2019 - PullRequest
0 голосов
/ 10 июня 2019

Мне нужно отредактировать строку подключения в моем файле appsettings.json для отладки приложения .Net Core MVC. Когда я запускаю приложение с помощью отладчика IIS Express, мое приложение создается на bin\Debug\netcoreapp2.2. Из этого каталога я редактирую свой файл конфигурации appsettings.Development.json со значениями, необходимыми для тестирования. Я знаю, что приложение тянет правильный вариант файлов appsettings.json. Однако я не думаю, что отладчик просматривает файл в bin\Debug\netcoreapp2.2, так как при редактировании этого файла изменения отсутствуют в моем приложении. Откуда отладчик IIS Express загружает файлы appsettings.json?

Скриншоты для большего контекста.

Я запускаю отладчик с этой панели инструментов.

enter image description here

Отладчик создает файлы в bin\Debug\netcoreapp2.2.

enter image description here

Затем я редактирую необходимый файл appsettings.json. Файл не будет перезаписан в будущих сборках, поскольку у меня установлено свойство «Копировать в выходной каталог» на «Копировать, если новее»

enter image description here

Я проверил, что для отладчика для переменной ASPNETCORE_ENVIRONMENT установлено значение "Разработка".

enter image description here

Но затем, когда я иду к отладке моего приложения, я получаю строку подключения по умолчанию в appsettings.json проекта, а не измененную строку подключения в appsettings.json каталога bin\Debug\netcoreapp2.2.

enter image description here

1 Ответ

1 голос
/ 11 июня 2019

По умолчанию IConfiguration читает файл *.json в папке проекта.

Для чтения файла *.json в других местах, таких как bin/Debug/netcoreapp2.2, вы можете настроить ConfigureAppConfiguration как

    public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
        WebHost.CreateDefaultBuilder(args)
            .UseStartup<Startup>()
            .ConfigureAppConfiguration((hostingContext, config) =>
            {
                config.AddJsonFile(
                    "bin/Debug/netcoreapp2.2/appsettings.Development.json", optional: false, reloadOnChange: true);
            });

А затем используйте его как

public class HomeController : Controller
{
    private readonly IConfiguration configuration;
    public HomeController(IConfiguration configuration)
    {
        this.configuration = configuration;
    }
    public IActionResult Index()
    {
        return Ok(configuration.GetConnectionString("DefaultConnection"));
        //return View();
    }
...