.NET Core - Khi nào sử dụng “dotnet new sln”


86

Tôi hơi bối rối - phần lớn các hướng dẫn .NET Core mà tôi đã đọc không đề cập đến "dotnet new sln" - họ luôn chỉ tạo các dự án riêng biệt mà không có bất kỳ tệp giải pháp nào để liên kết chúng với nhau.

  1. "Dotnet new sln" có phải là lệnh mới không?

  2. Khi nào tôi nên sử dụng cái này? Tôi nhận được lợi ích gì khi tạo tệp .sln thay vì chỉ có tệp dự án? Nó chủ yếu để mở trong Visual Studio? Tôi sử dụng Mã Visual Studio cho Mac, vì vậy nó có thể không áp dụng được.

Tôi đã tìm kiếm "dotnet new sln" trên googled và kết quả rất nhỏ.


Bạn dotnetđang sử dụng phiên bản nào từ dòng lệnh? Đó là, bạn thấy gì khi viết dotnet --version?
Shaun Luttin

Hi @ShaunLuttin Tôi chỉ nâng cấp một vài ngày trước ... 1.0.1
AndyNZ

Câu trả lời:


145

"Dotnet new sln" có phải là lệnh mới không?

Đúng. Trong phiên bản 1.0.1 của giao diện dòng lệnh dotnet, có một dotnet new slnlệnh. Lệnh đi kèm với sự thay đổi từ project.json thành csproj . Nếu chúng tôi chạy dotnet new --help, chúng tôi sẽ thấy "Tệp Giải pháp" là một trong các mẫu.

> 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

khi nào tôi nên sử dụng cái này?

Hai lần sử dụng tệp giải pháp là:

  1. khi chúng tôi muốn sử dụng Visual Studio và / hoặc
  2. khi chúng tôi muốn quản lý một số dự án như một đơn vị duy nhất.

Tôi thu được lợi ích gì khi tạo tệp .sln thay vì chỉ có tệp dự án? Nó chủ yếu để mở trong Visual Studio? Tôi sử dụng Visual Studio Code cho Mac, vì vậy nó có thể không áp dụng được.

Một trong những lợi ích mà không yêu cầu Visual Studio là quản lý nhiều dự án như một đơn vị duy nhất.

Ví dụ: trên máy Mac có Visual Studio Code, chúng ta có thể sử dụng dotnetCLI để tạo giải pháp mới, tạo một vài dự án, thêm các dự án đó vào giải pháp, khôi phục giải pháp và xây dựng giải pháp.

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

Lệnh cuối cùng, lệnh gọi dotnet build, có lợi ích là xây dựng tất cả các dự án có trong giải pháp. Nếu không có giải pháp, chúng tôi sẽ cần gọi dotnet buildcho từng dự án.

Không có nghi ngờ gì về các lợi ích khác mà không yêu cầu sử dụng Visual Studio. Tôi để những điều đó cho bạn khám phá.


Bạn có khuyên bạn nên sử dụng giải pháp cho dự án thư viện lớp và dự án thử nghiệm liên quan của nó không?
Horia Coman

@HoriaComan Có vẻ hợp lý khi sử dụng một giải pháp cho điều đó, vâng.
Shaun Luttin

Chúng tôi có thể sử dụng dotnet run -p Foo\Foo.csprojcho các dự án mvc? dường như chỉ làm việc khi tôi làmcd Foo && dotnet run
Vincent De Smet

@VincentDeSmet phù dotnet run -p .\Foo\Foo.csprojhợp với tôi.
Shaun Luttin

nó đã phàn nàn về việc không có một config.Development.json đó là trong thư mục con cho tôi
Vincent De Smet
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.