"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 Code мы можем использовать 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
?