Чи є "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
коли я повинен використовувати це?
Два рази використовувати файл рішення:
- коли ми хочемо використовувати Visual Studio та / або
- коли ми хочемо керувати кількома проектами як єдине ціле.
Які переваги я отримую від створення файлу .sln замість того, щоб просто мати файли проекту? Це в основному для відкриття у Visual Studio? Я використовую Visual Studio Code для Mac, тому він може не застосовуватися.
Однією з переваг, для якої не потрібна Visual Studio, є управління кількома проектами як єдине ціле.
Наприклад, на Mac з кодом Visual Studio ми можемо використовувати dotnet
CLI для створення нового рішення, створення декількох проектів, додавання цих проектів до рішення, відновлення рішення та побудови рішення.
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. Я залишаю це вам відкрити.
dotnet
ви використовуєте з командного рядка? Тобто, що ви бачите, коли пишетеdotnet --version
?