.NET Core - kiedy używać „dotnet new sln”

86

Jestem trochę zdezorientowany - większość samouczków .NET Core, które czytałem, nie wspomina o „dotnet new sln” - zawsze tworzą one projekty osobno, bez żadnego pliku rozwiązania, aby je połączyć.

  1. Czy „dotnet new sln” to nowe polecenie?

  2. Kiedy powinienem tego używać? Jakie korzyści mogę uzyskać dzięki utworzeniu pliku .sln zamiast tylko posiadania plików projektu? Czy służy głównie do otwierania w programie Visual Studio? Używam Visual Studio Code dla komputerów Mac, więc może nie mieć zastosowania.

Wyszukałem w Google „dotnet new sln” i wyniki są bardzo minimalne.

AndyNZ
źródło
Jakiej wersji dotnetużywasz z wiersza poleceń? To znaczy, co widzisz, kiedy piszesz dotnet --version?
Shaun Luttin,
Cześć @ShaunLuttin Właśnie zaktualizowałem kilka dni temu ... 1.0.1
AndyNZ

Odpowiedzi:

145

Czy „dotnet new sln” to nowe polecenie?

Tak. W wersji 1.0.1 interfejsu wiersza polecenia dotnet istnieje dotnet new slnpolecenie. Polecenie pojawiło się wraz ze zmianą z project.json na csproj . Jeśli uruchomimy dotnet new --help, zobaczymy „Plik rozwiązania” jako jeden z szablonów.

> dotnet new --help

Templates                 Short Name      Language      Tags
----------------------------------------------------------------------
Console Application       console         [C#], F#      Common/Console
Class library             classlib        [C#], F#      Common/Library
Unit Test Project         mstest          [C#], F#      Test/MSTest
xUnit Test Project        xunit           [C#], F#      Test/xUnit
ASP.NET Core Empty        web             [C#]          Web/Empty
ASP.NET Core Web App      mvc             [C#], F#      Web/MVC
ASP.NET Core Web API      webapi          [C#]          Web/WebAPI
Solution File             sln                           Solution

kiedy powinienem tego użyć?

Dwa razy, aby użyć pliku rozwiązania:

  1. gdy chcemy używać programu Visual Studio i / lub
  2. gdy chcemy zarządzać kilkoma projektami jako jedną jednostkę.

Jakie korzyści mogę uzyskać dzięki utworzeniu pliku .sln zamiast tylko posiadania plików projektu? Czy służy głównie do otwierania w programie Visual Studio? Używam Visual Studio Code dla komputerów Mac, więc może nie mieć zastosowania.

Jedną z korzyści niewymagających Visual Studio jest zarządzanie wieloma projektami jako pojedynczą jednostką.

Na przykład na komputerze Mac z Visual Studio Code możemy użyć dotnetinterfejsu wiersza polecenia, aby utworzyć nowe rozwiązanie, utworzyć kilka projektów, dodać te projekty do rozwiązania, przywrócić rozwiązanie i skompilować rozwiązanie.

dotnet new sln --name FooBar
dotnet new console --name Foo --output Foo
dotnet new console --name Bar --output Bar
dotnet sln add .\Foo\Foo.csproj
dotnet sln add .\Bar\Bar.csproj
dotnet restore
dotnet build FooBar.sln

Ostatnie polecenie, które wywołuje dotnet build, ma tę zaletę, że buduje wszystkie projekty, które są w rozwiązaniu. Bez rozwiązania musielibyśmy odwołać dotnet buildsię do każdego projektu.

Nie ma wątpliwości, że inne korzyści nie wymagają użycia Visual Studio. Zostawiam je tobie do odkrycia.

Shaun Luttin
źródło
Czy poleciłbyś użycie rozwiązania dla projektu biblioteki klas i skojarzonego z nim projektu testowego?
Horia Coman
@HoriaComan Wydaje się rozsądne, aby skorzystać z rozwiązania, tak.
Shaun Luttin
Czy możemy używać dotnet run -p Foo\Foo.csprojdo projektów MVC? wydaje się działać tylko wtedy, gdy to robięcd Foo && dotnet run
Vincent De Smet
@VincentDeSmet dotnet run -p .\Foo\Foo.csprojdziała dla mnie.
Shaun Luttin,
narzekał, że nie mam config.Development.json, który był dla mnie w podfolderze
Vincent De Smet