Compartir vía


dotnet sln

Este artículo se aplica a: ✔️ SDK de .NET Core 3.1 y versiones posteriores

Nombre

dotnet sln: enumera o modifica los proyectos de un archivo de solución de .NET, o migra el archivo a un archivo de .slnx.

Sinopsis

dotnet sln [<SOLUTION_FILE>] [command]

dotnet sln [command] -h|--help

Descripción

El comando dotnet sln proporciona una manera cómoda de enumerar y modificar proyectos en un archivo de solución.

Creación de un archivo de solución

Para usar el comando dotnet sln, el archivo de solución ya debe existir. Si necesita crear una, use el comando dotnet new con el nombre de la plantilla de sln.

En el ejemplo siguiente se crea un archivo .sln en la carpeta actual, con el mismo nombre que la carpeta :

dotnet new sln

En el ejemplo siguiente se crea un archivo .sln en la carpeta actual, con el nombre de archivo especificado:

dotnet new sln --name MySolution

En el ejemplo siguiente se crea un archivo .sln en la carpeta especificada, con el mismo nombre que la carpeta :

dotnet new sln --output MySolution

Argumentos

  • SOLUTION_FILE

    Archivo de solución que se va a usar (ya sea un archivo .sln o .slnx).

    Si no se especifica, el comando busca en el directorio actual un .sln o archivo .slnx y, si encuentra exactamente uno, usa ese archivo. Si se encuentran varios archivos de solución, se le pedirá al usuario que especifique explícitamente un archivo. Si no se encuentra ninguno, se produce un error en el comando.

Opciones

  • -?|-h|--help

    Imprime una descripción de cómo usar el comando .

Comandos

Los siguientes comandos están disponibles:

list

Enumera todos los proyectos de un archivo de solución.

Sinopsis

dotnet sln list [-h|--help]

Argumentos

  • SOLUTION_FILE

    Archivo de solución que se va a usar (ya sea un archivo .sln o .slnx).

    Si no se especifica, el comando busca en el directorio actual un .sln o archivo .slnx y, si encuentra exactamente uno, usa ese archivo. Si se encuentran varios archivos de solución, se le pedirá al usuario que especifique explícitamente un archivo. Si no se encuentra ninguno, se produce un error en el comando.

Opciones

  • -?|-h|--help

    Imprime una descripción de cómo usar el comando .

add

Agrega uno o varios proyectos al archivo de solución.

Sinopsis

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

Argumentos

  • SOLUTION_FILE

    Archivo de solución que se va a usar (ya sea un archivo .sln o .slnx).

    Si no se especifica, el comando busca en el directorio actual un .sln o archivo .slnx y, si encuentra exactamente uno, usa ese archivo. Si se encuentran varios archivos de solución, se le pedirá al usuario que especifique explícitamente un archivo. Si no se encuentra ninguno, se produce un error en el comando.

  • PROJECT_PATH

    Ruta de acceso al proyecto o los proyectos que se van a agregar a la solución. El comando dotnet sln procesa correctamente las expansiones de shell de Unix/Linux patrón global.

    Si PROJECT_PATH incluye carpetas que contienen la carpeta del proyecto, esa parte de la ruta de acceso se usa para crear carpetas de soluciones. Por ejemplo, los siguientes comandos crean una solución con myapp en la carpeta de soluciones folder1/folder2:

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

    Puede invalidar este comportamiento predeterminado mediante el --in-root o la opción -s|--solution-folder <PATH>.

Opciones

  • -?|-h|--help

    Imprime una descripción de cómo usar el comando .

  • --in-root

    Coloca los proyectos en la raíz de la solución, en lugar de crear una carpeta de solución . No se puede usar con -s|--solution-folder.

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

    La carpeta de solución de destino ruta de acceso para agregar los proyectos. No se puede usar con --in-root.

remove

Quita un proyecto o varios proyectos del archivo de solución.

Sinopsis

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

Argumentos

  • SOLUTION_FILE

    Archivo de solución que se va a usar (ya sea un archivo .sln o .slnx).

    Si no se especifica, el comando busca en el directorio actual un .sln o archivo .slnx y, si encuentra exactamente uno, usa ese archivo. Si se encuentran varios archivos de solución, se le pedirá al usuario que especifique explícitamente un archivo. Si no se encuentra ninguno, se produce un error en el comando.

  • PROJECT_PATH

    Ruta de acceso al proyecto o los proyectos que se van a quitar de la solución. El comando dotnet sln procesa correctamente las expansiones de shell de Unix/Linux patrón global.

Opciones

  • -?|-h|--help

    Imprime una descripción de cómo usar el comando .

migrate

Genera un archivo de solución de .slnx a partir de un archivo de .sln.

Sinopsis

dotnet sln [<SOLUTION_FILE>] migrate
dotnet sln [<SOLUTION_FILE>] migrate [-h|--help]

Argumentos

  • SOLUTION_FILE

    El archivo de solución .sln que se va a migrar.

    Si no se especifica, el comando busca en el directorio actual un archivo .sln y, si encuentra exactamente uno, usa ese archivo. Si se encuentran varios archivos .sln, se pide al usuario que especifique explícitamente un archivo. Si no se encuentra ninguno, se produce un error en el comando.

    Si especifica un archivo de .slnx en lugar de un archivo de .sln, o si ya existe un archivo .slnx con el mismo nombre de archivo (menos la extensión .sln) en el directorio, se produce un error en el comando.

Opciones

  • -?|-h|--help

    Imprime una descripción de cómo usar el comando .

Ejemplos

  • Enumere los proyectos de una solución:

    dotnet sln todo.slnx list
    
  • Agregue un proyecto de C# a una solución:

    dotnet sln add todo-app/todo-app.csproj
    
  • Quite un proyecto de C# de una solución:

    dotnet sln remove todo-app/todo-app.csproj
    
  • Agregue varios proyectos de C# a la raíz de una solución:

    dotnet sln todo.slnx add todo-app/todo-app.csproj back-end/back-end.csproj --in-root
    
  • Agregue varios proyectos de C# a una solución:

    dotnet sln todo.slnx add todo-app/todo-app.csproj back-end/back-end.csproj
    
  • Quite varios proyectos de C# de una solución:

    dotnet sln todo.slnx remove todo-app/todo-app.csproj back-end/back-end.csproj
    
  • Agregue varios proyectos de C# a una solución mediante un patrón global (solo Unix/Linux):

    dotnet sln todo.slnx add **/*.csproj
    
  • Agregue varios proyectos de C# a una solución mediante un patrón de globbing (solo Windows PowerShell):

    dotnet sln todo.slnx add (ls -r **/*.csproj)
    
  • Quite varios proyectos de C# de una solución mediante un patrón de globbing (solo Unix/Linux):

    dotnet sln todo.slnx remove **/*.csproj
    
  • Quite varios proyectos de C# de una solución mediante un patrón de globbing (solo Windows PowerShell):

    dotnet sln todo.slnx remove (ls -r **/*.csproj)
    
  • Genere un archivo .slnx a partir de un archivo de .sln:

    dotnet sln todo.sln migrate
    
  • Cree una solución, una aplicación de consola y dos bibliotecas de clases. Agregue los proyectos a la solución y use la opción --solution-folder de dotnet sln para organizar las bibliotecas de clases en una carpeta de soluciones.

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

    En la captura de pantalla siguiente se muestra el resultado en Visual Studio 2019 Explorador de soluciones:

    Explorador de soluciones que muestra los proyectos de biblioteca de clases agrupados en una carpeta de soluciones.

Consulte también