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 conmyapp
en la carpeta de solucionesfolder1/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
dedotnet 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:
Consulte también
- repositorio de GitHub dotnet/sdk (origen de la CLI de .NET)