"Dotnet new sln" é um novo comando?
Sim. Na versão 1.0.1 da interface de linha de comando dotnet, existe um dotnet new sln
comando. O comando veio com a mudança de project.json para csproj . Se executarmos dotnet new --help
, veremos "Arquivo de solução" como um dos modelos.
> 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
quando devo usar isso?
Duas vezes para usar um arquivo de solução:
- quando queremos usar o Visual Studio, e / ou
- quando queremos gerenciar vários projetos como uma única unidade.
Quais são os benefícios de criar um arquivo .sln em vez de apenas ter arquivos de projeto? É principalmente para abrir no Visual Studio? Eu uso o Visual Studio Code para Mac, portanto, pode não ser aplicável.
Um dos benefícios que não requerem o Visual Studio é o gerenciamento de vários projetos como uma única unidade.
Por exemplo, em um Mac com Visual Studio Code, podemos usar a dotnet
CLI para criar uma nova solução, criar alguns projetos, adicionar esses projetos à solução, restaurar a solução e construir a solução.
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
O último comando, que chama dotnet build
, tem a vantagem de construir todos os projetos que estão na solução. Sem uma solução, precisaríamos recorrer dotnet build
a cada projeto.
Sem dúvida, existem outros benefícios que não requerem o uso do Visual Studio. Deixo isso para você descobrir.
dotnet
você está usando na linha de comando? Ou seja, o que você vê quando escrevedotnet --version
?