dotnet sln

Este artigo se aplica a: ✔️ SDK do .NET Core 3.1 e versões posteriores

Nome

dotnet sln - Lista ou modifica os projetos em um arquivo de solução .NET.

Sinopse

dotnet sln [<SOLUTION_FILE>] [command]

dotnet sln [command] -h|--help

Descrição

O comando dotnet sln oferece uma maneira conveniente de adicionar, remover e listar projetos em um arquivo de solução.

Criar um arquivo de solução

Para usar o comando dotnet sln, o arquivo de solução já deve existir. Se você precisar criar um, use o comando dotnet new com o nome do modelo sln.

O exemplo a seguir cria um arquivo .sln na pasta atual, com o mesmo nome da pasta:

dotnet new sln

O exemplo a seguir cria um arquivo .sln na pasta atual, com o nome do arquivo especificado:

dotnet new sln --name MySolution

O exemplo a seguir cria um arquivo .sln na pasta especificada, com o mesmo nome da pasta:

dotnet new sln --output MySolution

Argumentos

  • SOLUTION_FILE

    O arquivo de solução a ser usado. Se esse argumento for omitido, o comando pesquisará um no diretório atual. Se ele não encontrar nenhum arquivo de solução ou vários arquivos de solução, o comando falhará.

Opções

  • -?|-h|--help

    Imprime uma descrição de como usar o comando.

Comandos

list

Lista todos os projetos em um arquivo de solução.

Sinopse

dotnet sln list [-h|--help]

Argumentos

  • SOLUTION_FILE

    O arquivo de solução a ser usado. Se esse argumento for omitido, o comando pesquisará um no diretório atual. Se ele não encontrar nenhum arquivo de solução ou vários arquivos de solução, o comando falhará.

Opções

  • -?|-h|--help

    Imprime uma descrição de como usar o comando.

add

Adicionar um ou mais projetos em um arquivo de solução.

Sinopse

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

Argumentos

  • SOLUTION_FILE

    O arquivo de solução a ser usado. Se não for especificado, o comando pesquisará um no diretório atual e falhará se houver vários arquivos de solução.

  • PROJECT_PATH

    O caminho para o projeto ou projetos a serem adicionados à solução. As expansões de padrão de globbing do shell Unix/Linux são processadas corretamente pelo comando dotnet sln.

    Se PROJECT_PATH incluir pastas que contêm a pasta do projeto, essa parte do caminho será usada para criar pastas de solução. Por exemplo, os seguintes comandos criam uma solução com myapp na pasta de solução folder1/folder2:

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

    É possível substituir esse comportamento usando a opção --in-root ou -s|--solution-folder <PATH>.

Opções

  • -?|-h|--help

    Imprime uma descrição de como usar o comando.

  • --in-root

    Coloca o projeto na raiz da solução, em vez de criar uma pasta de solução. Não pode ser usado com -s|--solution-folder.

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

    O caminho da pasta de solução de destino ao qual adicionar os projetos. Não pode ser usado com --in-root.

remove

Remova um projeto ou vários projetos do arquivo da solução.

Sinopse

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

Argumentos

  • SOLUTION_FILE

    O arquivo de solução a ser usado. Se não for especificado, o comando pesquisará um no diretório atual e falhará se houver vários arquivos de solução.

  • PROJECT_PATH

    O caminho para o projeto ou projetos a serem removidos da solução. As expansões de padrão de globbing do shell Unix/Linux são processadas corretamente pelo comando dotnet sln.

Opções

  • -?|-h|--help

    Imprime uma descrição de como usar o comando.

Exemplos

  • Liste os projetos em uma solução:

    dotnet sln todo.sln list
    
  • Adicione um projeto C# a uma solução:

    dotnet sln add todo-app/todo-app.csproj
    
  • Remova um projeto C# de uma solução:

    dotnet sln remove todo-app/todo-app.csproj
    
  • Adicione vários projetos C# à raiz de uma solução:

    dotnet sln todo.sln add todo-app/todo-app.csproj back-end/back-end.csproj --in-root
    
  • Adicione vários projetos C# a uma solução:

    dotnet sln todo.sln add todo-app/todo-app.csproj back-end/back-end.csproj
    
  • Remova vários projetos C# de uma solução:

    dotnet sln todo.sln remove todo-app/todo-app.csproj back-end/back-end.csproj
    
  • Adicione vários projetos C# a uma solução usando um padrão glob (somente Unix/Linux):

    dotnet sln todo.sln add **/*.csproj
    
  • Adicione vários projetos C# a uma solução usando um padrão glob (somente Windows PowerShell):

    dotnet sln todo.sln add (ls -r **/*.csproj)
    
  • Remova vários projetos C# de uma solução usando um padrão glob (somente Unix/Linux):

    dotnet sln todo.sln remove **/*.csproj
    
  • Remova vários projetos C# de uma solução usando um padrão glob (somente Windows PowerShell):

    dotnet sln todo.sln remove (ls -r **/*.csproj)
    
  • Crie uma solução, um aplicativo de console e duas bibliotecas de classes. Adicione os projetos à solução e use a opção --solution-folder de dotnet sln para organizar as bibliotecas de classe em uma pasta de solução.

    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
    

    A captura de tela a seguir mostra o resultado no Gerenciador de Soluções do Visual Studio 2019:

    Gerenciador de soluções mostrando projetos de biblioteca de classes em uma pasta de solução.

Confira também