.NET Core: quando utilizzare "dotnet new sln"


87

Sono un po 'confuso - la maggior parte dei tutorial .NET Core che ho letto non ha menzionato "dotnet new sln" - creano sempre i progetti separatamente senza alcun file di soluzione per collegarli insieme.

  1. "Dotnet new sln" è un nuovo comando?

  2. Quando dovrei usarlo? Quali vantaggi ottengo dalla creazione di un file .sln invece di avere solo file di progetto? È principalmente per l'apertura in Visual Studio? Uso Visual Studio Code per Mac, quindi potrebbe non essere applicabile.

Ho cercato su Google "dotnet new sln" ei risultati sono minimi.


Quale versione di dotnetstai usando dalla riga di comando? Cioè, cosa vedi quando scrivi dotnet --version?
Shaun Luttin

Ciao @ShaunLuttin Ho appena aggiornato un paio di giorni fa ... 1.0.1
AndyNZ

Risposte:


148

"Dotnet new sln" è un nuovo comando?

Sì. Nella versione 1.0.1 dell'interfaccia della riga di comando dotnet, è disponibile un dotnet new slncomando. Il comando è arrivato con il passaggio da project.json a csproj . Se eseguiamo dotnet new --help, vedremo "File di soluzione" come uno dei modelli.

> 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 dovrei usarlo?

Due volte per utilizzare un file di soluzione sono:

  1. quando vogliamo utilizzare Visual Studio e / o
  2. quando vogliamo gestire più progetti come una singola unità.

Quali vantaggi ottengo dalla creazione di un file .sln invece di avere solo file di progetto? È principalmente per l'apertura in Visual Studio? Uso Visual Studio Code per Mac, quindi potrebbe non essere applicabile.

Uno dei vantaggi che non richiedono Visual Studio è la gestione di più progetti come una singola unità.

Ad esempio, su un Mac con Visual Studio Code, possiamo utilizzare la dotnetCLI per creare una nuova soluzione, creare alcuni progetti, aggiungere quei progetti alla soluzione, ripristinare la soluzione e compilare la soluzione.

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'ultimo comando, che chiama dotnet build, ha il vantaggio di costruire tutti i progetti che sono nella soluzione. Senza una soluzione, avremmo bisogno di ricorrere dotnet builda ogni progetto.

Non ci sono dubbi altri vantaggi che non richiedono l'uso di Visual Studio. Li lascio a voi scoprire.


Consiglieresti di utilizzare una soluzione per un progetto di libreria di classi e il progetto di test associato?
Horia Coman

@HoriaComan Sembra ragionevole usare una soluzione per questo, sì.
Shaun Luttin

Possiamo usare dotnet run -p Foo\Foo.csprojper progetti mvc? sembra funzionare solo quando lo faccio iocd Foo && dotnet run
Vincent De Smet

@VincentDeSmet dotnet run -p .\Foo\Foo.csprojfunziona per me.
Shaun Luttin

si lamentava di non avere un config.Development.json che era nella sottocartella per me
Vincent De Smet
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.