102 votes

.NET Core - Quand utiliser "dotnet new sln" ?

Je suis un peu confus - la majorité des tutoriels .NET Core que j'ai lus n'ont pas mentionné "dotnet new sln" - ils créent toujours les projets séparément sans aucun fichier de solution pour les relier ensemble.

  1. Est-ce que "dotnet new sln" est une nouvelle commande ?

  2. Quand dois-je l'utiliser ? Quels avantages ai-je à créer un fichier .sln au lieu d'avoir simplement des fichiers de projet ? Est-ce principalement pour l'ouverture dans Visual Studio ? J'utilise Visual Studio Code pour Mac, il se peut donc que cela ne soit pas applicable.

J'ai cherché sur Google "dotnet new sln" et les résultats sont très limités.

0 votes

Quelle version de dotnet que vous utilisez en ligne de commande ? C'est-à-dire, que voyez-vous lorsque vous écrivez dotnet --version ?

0 votes

Bonjour @ShaunLuttin Je viens de faire la mise à jour il y a quelques jours... 1.0.1

179voto

Shaun Luttin Points 1585

Est-ce que "dotnet new sln" est une nouvelle commande ?

Oui. Dans la version 1.0.1 de l'interface de ligne de commande dotnet, il y a une fonction dotnet new sln commande. La commande était accompagnée de le changement de project.json à csproj . Si nous exécutons dotnet new --help nous verrons que le "fichier de solution" est l'un des modèles.

> 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

Quand dois-je l'utiliser ?

Il y a deux occasions d'utiliser un fichier de solutions :

  1. lorsque nous voulons utiliser Visual Studio, et/ou
  2. lorsque l'on veut gérer plusieurs projets comme une seule unité.

Quels avantages ai-je à créer un fichier .sln au lieu d'avoir simplement des fichiers de projet ? Est-ce principalement pour l'ouverture dans Visual Studio ? J'utilise Visual Studio Code pour Mac, donc cela peut ne pas être applicable.

L'un des avantages qui ne nécessitent pas Visual Studio est la gestion de plusieurs projets comme une seule unité.

Par exemple, sur un Mac avec Visual Studio Code, nous pouvons utiliser la commande dotnet CLI pour créer une nouvelle solution, créer quelques projets, ajouter ces projets à la solution, restaurer la solution et construire la solution.

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

La dernière commande, qui appelle dotnet build a l'avantage de construire tous les projets qui sont dans la solution. Sans solution, nous aurions besoin d'appeler dotnet build sur chaque projet.

Il existe sans doute d'autres avantages qui ne nécessitent pas l'utilisation de Visual Studio. Je vous laisse le soin de les découvrir.

0 votes

Recommanderiez-vous d'utiliser une solution pour un projet de bibliothèque de classes et son projet de test associé ?

0 votes

@HoriaComan Il semble raisonnable d'utiliser une solution pour cela, oui.

0 votes

Pouvons-nous utiliser dotnet run -p Foo\Foo.csproj pour les projets mvc ? Il semble que cela ne fonctionne que lorsque je fais cd Foo && dotnet run

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X