dotnet sln

Cet article s’applique à : ✔️ SDK .NET Core 3.1 et versions ultérieures

Nom

dotnet sln : répertorie ou modifie les projets dans un fichier de solution .NET.

Synopsis

dotnet sln [<SOLUTION_FILE>] [command]

dotnet sln [command] -h|--help

Description

La commande dotnet sln offre un moyen pratique de répertorier et de modifier des projets dans un fichier de solution.

Créer un fichier de solution

Pour que la commande dotnet sln puisse être utilisée, le fichier solution doit déjà exister. Si vous devez en créer un, utilisez la commande dotnet new avec le nom du modèle sln.

L’exemple suivant crée un fichier .sln dans le dossier actif, portant le même nom que le dossier :

dotnet new sln

L’exemple suivant crée un fichier .sln dans le dossier actif, avec le nom de fichier spécifié :

dotnet new sln --name MySolution

L’exemple suivant crée un fichier .sln dans le dossier spécifié, portant le même nom que le dossier :

dotnet new sln --output MySolution

Arguments

  • SOLUTION_FILE

    Fichier de solution à utiliser. Si cet argument est omis, la commande en recherche un dans le répertoire actif. Si elle ne trouve aucun fichier de solution ou plusieurs fichiers de solution, la commande échoue.

Options

  • -?|-h|--help

    Imprime une description de l’utilisation de la commande.

Commandes

list

Liste tous les projets dans un fichier solution.

Synopsis

dotnet sln list [-h|--help]

Arguments

  • SOLUTION_FILE

    Fichier de solution à utiliser. Si cet argument est omis, la commande en recherche un dans le répertoire actif. Si elle ne trouve aucun fichier de solution ou plusieurs fichiers de solution, la commande échoue.

Options

  • -?|-h|--help

    Imprime une description de l’utilisation de la commande.

add

Ajoute un ou plusieurs projets au fichier de solution.

Synopsis

dotnet sln [<SOLUTION_FILE>] add [--in-root] [-s|--solution-folder <PATH>] <PROJECT_PATH> [<PROJECT_PATH>...]
dotnet sln add [-h|--help]

Arguments

  • SOLUTION_FILE

    Fichier de solution à utiliser. S’il n’est pas spécifié, la commande en recherche un dans le répertoire actif et échoue s’il existe plusieurs fichiers de solution.

  • PROJECT_PATH

    Chemin d’accès au projet ou aux projets à ajouter à la solution. Les extensions de modèle Glob d’interpréteur de commandes Unix/Linux sont traitées correctement par la commande dotnet sln.

    Si PROJECT_PATH inclut des dossiers qui contiennent le dossier du projet, cette partie du chemin d’accès est utilisée pour créer des dossiers de solution. Par exemple, les commandes suivantes créent une solution avec myapp dans le dossier de solution folder1/folder2 :

    dotnet new sln
    dotnet new console --output folder1/folder2/myapp
    dotnet sln add folder1/folder2/myapp
    

    Vous pouvez remplacer ce comportement par défaut à l’aide de l’option --in-root ou -s|--solution-folder <PATH>.

Options

  • -?|-h|--help

    Imprime une description de l’utilisation de la commande.

  • --in-root

    Place les projets à la racine de la solution, au lieu de créer un dossier de solution. Impossible à utiliser avec -s|--solution-folder.

  • -s|--solution-folder <PATH>

    Chemin de dossier de solution de destination où les projets doivent être ajoutés. Impossible à utiliser avec --in-root.

remove

Supprime un ou plusieurs projets du fichier solution.

Synopsis

dotnet sln [<SOLUTION_FILE>] remove <PROJECT_PATH> [<PROJECT_PATH>...]
dotnet sln [<SOLUTION_FILE>] remove [-h|--help]

Arguments

  • SOLUTION_FILE

    Fichier de solution à utiliser. S’il n’est pas spécifié, la commande en recherche un dans le répertoire actif et échoue s’il existe plusieurs fichiers de solution.

  • PROJECT_PATH

    Chemin d’accès au projet ou aux projets à supprimer de la solution. Les extensions de modèle Glob d’interpréteur de commandes Unix/Linux sont traitées correctement par la commande dotnet sln.

Options

  • -?|-h|--help

    Affiche une description de l’utilisation de la commande.

Exemples

  • Répertorier les projets d’une solution :

    dotnet sln todo.sln list
    
  • Ajouter un projet C# à une solution :

    dotnet sln add todo-app/todo-app.csproj
    
  • Supprimer un projet C# d’une solution :

    dotnet sln remove todo-app/todo-app.csproj
    
  • Ajouter plusieurs projets C# à la racine d’une solution :

    dotnet sln todo.sln add todo-app/todo-app.csproj back-end/back-end.csproj --in-root
    
  • Ajouter plusieurs projets C# à une solution :

    dotnet sln todo.sln add todo-app/todo-app.csproj back-end/back-end.csproj
    
  • Supprimer plusieurs projets C# d’une solution :

    dotnet sln todo.sln remove todo-app/todo-app.csproj back-end/back-end.csproj
    
  • Ajouter plusieurs projets C# à une solution à l’aide d’un modèle Glob (Unix/Linux uniquement) :

    dotnet sln todo.sln add **/*.csproj
    
  • Ajouter plusieurs projets C# à une solution à l’aide d’un modèle Glob (Windows PowerShell uniquement) :

    dotnet sln todo.sln add (ls -r **/*.csproj)
    
  • Supprimer plusieurs projets C# d’une solution à l’aide d’un modèle Glob (Unix/Linux uniquement) :

    dotnet sln todo.sln remove **/*.csproj
    
  • Supprimer plusieurs projets C# d’une solution à l’aide d’un modèle Glob (Windows PowerShell uniquement) :

    dotnet sln todo.sln remove (ls -r **/*.csproj)
    
  • Créez une solution, une application console et deux bibliothèques de classes. Ajoutez les projets à la solution et utilisez l’option --solution-folder de dotnet sln pour organiser les bibliothèques de classes dans un dossier de solution.

    dotnet new sln -n mysolution
    dotnet new console -o myapp
    dotnet new classlib -o mylib1
    dotnet new classlib -o mylib2
    dotnet sln mysolution.sln add myapp\myapp.csproj
    dotnet sln mysolution.sln add mylib1\mylib1.csproj --solution-folder mylibs
    dotnet sln mysolution.sln add mylib2\mylib2.csproj --solution-folder mylibs
    

    La capture d’écran suivante montre le résultat dans l’Explorateur de solutions Visual Studio 2019 :

    Explorateur de solutions montrant les projets de bibliothèque de classes regroupés dans un dossier de solution.

Voir aussi