Nic nie stoi na przeszkodzie, aby mieć wiele projektów w ramach jednego wystąpienia kodu Visual Studio. Domyślna struktura projektu dla projektów ASP.NET Core faktycznie korzysta z wielu folderów. Możesz zobaczyć tę strukturę w akcji we wszystkich projektach ASP.NET Core na GitHub, np. MVC one:
─ src
├─ Microsoft.AspNetCore.Mvc
├─ Microsoft.AspNetCore.Mvc.Abstractions
├─ Microsoft.AspNetCore.Mvc.Core
└─ Microsoft.AspNetCore.Mvc.Razor
─ test
├─ Microsoft.AspNetCore.Mvc.Abstractions.Test
├─ Microsoft.AspNetCore.Mvc.Core.Test
├─ Microsoft.AspNetCore.Mvc.Razor.Test
└─ Microsoft.AspNetCore.Mvc.Test
Każdy z nich jest folder z pełnym niezależnym projektem, z własnym project.json
który określa projekt i konfiguruje zależności.
Niestety, integracja Yeoman w kodzie VS nie pozwala na umieszczanie projektów rusztowań w podfolderach. Musisz więc samodzielnie utworzyć folder src
i test
, samodzielnie zarchiwizować projekty i przenieść je do odpowiedniego folderu. Na przykład zacząłem tworzyć "Pustą aplikację internetową" o nazwie Example
, a następnie utworzyłem "Projekt testu jednostkowego (xUnit.net)" o nazwie Example.Test
. Następnie po prostu przeciągnąłem Example
do folderu src
i Example.Test
do test
.
Korzeń projektu, a więc folder otwierany za pomocą kodu VS, a także miejsce inicjowania repozytorium, to katalog, w którym znajdują się foldery src
i test
. Na przykład mój projekt (konfiguracja z Git i vscode konkretnych configs) będzie teraz wyglądać tak:
─ .git
─ .vscode
─ src
└─ Example
─ test
└─ Example.Test
─ global.json
─ README.md
zaletą tej konstrukcji jest rzeczywiście, że jest to również zgodne z tym, co zrobi Visual Studio podczas tworzenia nowego rozwiązania.
Do tej pory rozwiązałem problem, przechodząc do Visual Studio, ale wydaje się dziwne, że generator domyślny nie obsługuje tego. – looper