Когда я запускаю приложение Asp.Net Core в Visual Studio, оно запускает файл dotnet.exe
с моим dll в качестве параметра.
Кроме того, я вижу, что приложение имеет доступ к множеству различных переменных среды, которыенедоступны в обычном консольном приложении, например ASPNETCORE_CONTENTROOT
.Это делает некоторую магию, чтобы позволить appsettings.json
файлам считываться непосредственно из каталога проекта, а не bin/debug
.Я хотел добиться того же в своем консольном приложении, чтобы избежать копирования файла в папку bin/debug
, но я не мог понять, что вводит эти переменные.
Так что вопрос в том, как эти переменные среды появляются вприложение Asp.Net?
Я подозреваю, что WebHost или некоторые базовые библиотеки делают это, но не может найти никаких доказательств того или иного кода, чтобы выяснить, как читается исходный каталог.
PS Я не пытаюсь выяснить, как сделать переменные окружения доступными через конфигурацию (как, например, AddEnvironmentalVariables), но как они становятся переменными окружения в самом процессе в первую очередь (чтобы впоследствии их можно было прочитать через config).
Меня интересует это по двум причинам: выяснить, как ASPNETCORE_CONTENTROOT
настроен так же для консольного приложения и из любопытства:)