.NET Core - Коли використовувати “dotnet new sln”


86

Я трохи заплутався - у більшості підручників .NET Core, які я читав, не згадується "dotnet new sln" - вони завжди просто створюють проекти окремо без будь-якого файлу рішення, щоб зв'язати їх між собою.

  1. Чи є "dotnet new sln" новою командою?

  2. Коли мені це використовувати? Які переваги я отримую від створення файлу .sln замість того, щоб просто мати файли проекту? Це в основному для відкриття у Visual Studio? Я використовую Visual Studio Code для Mac, тому він може не застосовуватися.

Я погуглив "dotnet new sln", і результати дуже мінімальні.


Яку версію dotnetви використовуєте з командного рядка? Тобто, що ви бачите, коли пишете dotnet --version?
Шон Луттін,

Привіт @ShaunLuttin, я щойно оновив пару днів тому ... 1.0.1
AndyNZ,

Відповіді:


145

Чи є "dotnet new sln" новою командою?

Так. У версії 1.0.1 інтерфейсу командного рядка dotnet є dotnet new slnкоманда. Команда надійшла зі зміною з project.json на csproj . Якщо ми запустимо dotnet new --help, ми побачимо "Файл рішення" як один із шаблонів.

> 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? Я використовую Visual Studio Code для Mac, тому він може не застосовуватися.

Однією з переваг, для якої не потрібна Visual Studio, є управління кількома проектами як єдине ціле.

Наприклад, на Mac з кодом Visual Studio ми можемо використовувати 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. Я залишаю це вам відкрити.


Чи рекомендуєте Ви використовувати рішення для проекту бібліотеки класів та пов'язаного з ним тестового проекту?
Хорія Коман

@HoriaComan Здається, розумно використовувати рішення для цього, так.
Шон Луттін,

Чи можемо ми використовувати dotnet run -p Foo\Foo.csprojдля проектів mvc? здається, це працює лише тоді, коли я це роблюcd Foo && dotnet run
Вінсент Де Смет

@VincentDeSmet dotnet run -p .\Foo\Foo.csprojсправді працює для мене.
Шон Луттін,

він скаржився на відсутність config.Development.json, який був у мене в підпапці
Вінсент Де Смет,
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.