[asp.net-core] .NET Core- “dotnet new sln”을 사용하는 경우

내가 읽은 .NET Core 자습서의 대부분은 “dotnet new sln”에 대해 언급하지 않았습니다. 항상 서로 연결하는 솔루션 파일없이 프로젝트를 별도로 생성합니다.

  1. “dotnet new sln”이 새로운 명령입니까?

  2. 언제 사용해야합니까? 프로젝트 파일이 아닌 .sln 파일을 만들면 어떤 이점이 있습니까? 주로 Visual Studio에서 열기위한 것입니까? Mac 용 Visual Studio Code를 사용하므로 적용되지 않을 수 있습니다.

나는 “dotnet new sln”을 검색했고 그 결과는 매우 적다.



답변

“dotnet new sln”이 새로운 명령입니까?

예. dotnet 명령 줄 인터페이스 버전 1.0.1에는 dotnet new sln명령이 있습니다. 이 명령은 project.json에서 csproj로 변경되었습니다 . 를 실행 dotnet new --help하면 템플릿 중 하나로 “Solution File”이 표시됩니다.

> 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

언제 사용해야하나요?

솔루션 파일을 사용하는 두 번은 다음과 같습니다.

  1. Visual Studio를 사용하려는 경우 및 / 또는
  2. 여러 프로젝트를 하나의 단위로 관리하고 싶을 때.

프로젝트 파일이 아닌 .sln 파일을 만들면 어떤 이점이 있습니까? 주로 Visual Studio에서 열기위한 것입니까? Mac 용 Visual Studio Code를 사용하므로 적용되지 않을 수 있습니다.

Visual Studio가 필요하지 않은 이점 중 하나는 여러 프로젝트를 단일 단위로 관리한다는 것입니다.

예를 들어 Visual Studio Code가있는 Mac에서 dotnetCLI를 사용하여 새 솔루션을 만들고 몇 가지 프로젝트를 만들고 해당 프로젝트를 솔루션에 추가하고 솔루션을 복원하고 솔루션을 빌드 할 수 있습니다.

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

를 호출하는 마지막 명령 dotnet build은 솔루션에있는 모든 프로젝트를 빌드하는 이점이 있습니다. 해결책이 없으면 dotnet build각 프로젝트 를 호출해야합니다 .

Visual Studio를 사용할 필요가없는 다른 이점은 의심 할 여지가 없습니다. 나는 그것들을 발견하기 위해 당신에게 맡깁니다.


답변