Хотя я не знаю файлов .env, мои ответы на остальные следующие:
Если у вас есть appsettings. json и appsettings.development. json и вы указываете в своем ASPNETCORE_ENVIRONMENT, что вы запускаете разработку, настройки в appsettings.development. json должны перезаписать настройки в appsettings. json, а те, которые не были перезаписаны, будут считаны из appsettings. json. Однако я почти всегда использую appsettings. json, содержащий только {}, а затем использую appsettings.production. json и appsettings.development. json, чтобы точно указать, какие настройки go где.
Что касается безопасности, я думаю, что намерение состоит в том, чтобы оставить добавление секретов для системы CD, таких как Octopus deploy или teamcity, которые затем будут обменивать секреты-заполнители на настоящие при развертывании решения.
Launchsettings. json only относится к запуску проекта локально без публикации, будь то через Rider или Visual Studio, он сообщает системе, запускать ли браузер и какой URL-адрес искать приложение, порты - это просто значения по умолчанию, которые можно перезаписать в коде, где затем вам нужно сопоставить вновь выбранные порты в настройках запуска, чтобы отладка работала должным образом.
Надеюсь, это имеет смысл.