Как создать, построить и запустить мульти ASP.NET Основной проект в одной папке VSCode workspace?

#asp.net-core #visual-studio-code

#asp.сетевое ядро #visual-studio-код

Вопрос:

Как создать, построить и запустить несколько ASP.NET Основные проекты в одной папке в рабочей области VS Code для репозитория, содержащего один запускаемый проект и одну или несколько библиотек классов?

В документации для рабочих областей с несколькими корнями указано, что это полезно при работе с несколькими проектами, которые не хранятся в одной родительской папке. Однако все проекты, хранящиеся в одном репозитории, хранятся в одной родительской папке, так как же мне проще всего справиться с этой ситуацией, в идеале без необходимости использовать рабочие пространства с несколькими корнями, и в идеале таким образом, чтобы их можно было запускать в контейнере разработчика.

Я просмотрел документацию по коду VS и вообще ничего об этом не вижу, а поиск в Google просто обнаруживает несколько блогов многолетней давности, которые выглядят довольно устаревшими.

Ответ №1:

Похоже, документации нет, потому что «это просто работает».

Используя VSCode, вы можете открыть папку в контейнере разработчика с помощью образа ASP Core 5. Вручную создайте папку в корневом каталоге рабочей области и создайте основной проект ASP в этой папке с помощью dotnet new webapi . Запуск с использованием dotnet run и после создания сертификата разработчика служба доступна извне контейнера.

Вручную создайте новую подпапку в корневом каталоге рабочей области и создайте проект библиотеки классов в этой папке с помощью dotnet new classlib . Постройте его с помощью dotnet build .

Ссылайтесь на classlib из службы с помощью dotnet add reference ../project2.csproj .

Два очень приятных бонуса.

  1. Запуск dotnet watch run проекта службы будет обнаруживать и создавать изменения как в службе, так и в зависимости.
  2. Создание конфигурации отладки по умолчанию в VSCode будет подключено к запущенной службе (как только вы найдете правильный процесс) и также войдет в проект зависимостей без дополнительной настройки.