Nota
O acceso a esta páxina require autorización. Pode tentar iniciar sesión ou modificar os directorios.
O acceso a esta páxina require autorización. Pode tentar modificar os directorios.
Este artículo se aplica a: ✔️ SDK de .NET 6 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 .slnx en la carpeta actual, con el mismo nombre que la carpeta:
dotnet new sln
En el ejemplo siguiente se crea un archivo .slnx en la carpeta actual, con el nombre de archivo especificado:
dotnet new sln --name MySolution
En el ejemplo siguiente se crea un archivo .slnx en la carpeta especificada, con el mismo nombre que la carpeta:
dotnet new sln --output MySolution
Nota:
En .NET 9 y versiones anteriores, dotnet new sln crea un archivo .sln en lugar de un archivo .slnx .
Argumentos
SOLUTION_FILEArchivo 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|--helpImprime 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_FILEArchivo de solución (.sln o archivo .slnx ) o filtro de solución (archivo .slnf ) que se va a usar.
Si no se especifica, el comando busca en el directorio actual un archivo .sln, .slnx o .slnf y, si encuentra exactamente uno, usa ese archivo. Si se encuentran varios archivos de solución o filtros, se pide al usuario que especifique explícitamente un archivo. Si no se encuentra ninguno, se produce un error en el comando.
(Se ha agregado compatibilidad con archivos .slnf en el SDK de .NET 9.0.3xx).
Opciones
-
-?|-h|--helpImprime 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_FILEArchivo 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_PATHRuta de acceso al proyecto o los proyectos que se van a agregar a la solución. El comando procesa correctamente las expansiones de shell de Unix/Linux
dotnet sln.Si
PROJECT_PATHincluye 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 conmyappen la carpeta de solucionesfolder1/folder2:dotnet new sln dotnet new console --output folder1/folder2/myapp dotnet sln add folder1/folder2/myappPuede invalidar este comportamiento predeterminado mediante el
--in-rooto la opción-s|--solution-folder <PATH>.
Opciones
-
-?|-h|--helpImprime una descripción de cómo usar el comando .
--in-rootColoca 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_NAME> [<PROJECT_PATH|PROJECT_NAME>...]
dotnet sln [<SOLUTION_FILE>] remove [-h|--help]
Argumentos
SOLUTION_FILEArchivo 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_PATHoPROJECT_NAMELa ruta de acceso a, o el nombre, del proyecto o de los proyectos que se van a quitar de la solución. El comando procesa correctamente las expansiones de shell de Unix/Linux
dotnet sln.Si se proporciona un nombre de proyecto en lugar de una ruta de acceso, se quita el proyecto de la solución que coincide con el nombre, independientemente de su ruta de acceso. Si se encuentra más de un proyecto coincidente en la solución, se producirá un error en el comando. Omita la extensión de archivo del proyecto en el nombre. (Se ha agregado compatibilidad con la eliminación de proyectos por nombre en .NET 10).
Opciones
-
-?|-h|--helpImprime 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_FILEEl 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|--helpImprime una descripción de cómo usar el comando .
Ejemplos
Enumere los proyectos de una solución:
dotnet sln todo.slnx listAgregue un proyecto de C# a una solución:
dotnet sln add todo-app/todo-app.csprojQuite un proyecto de C# de una solución:
dotnet sln remove todo-app/todo-app.csprojAgregue 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-rootAgregue varios proyectos de C# a una solución:
dotnet sln todo.slnx add todo-app/todo-app.csproj back-end/back-end.csprojQuite varios proyectos de C# de una solución:
dotnet sln todo.slnx remove todo-app/todo-app.csproj back-end/back-end.csprojAgregue varios proyectos de C# a una solución mediante un patrón global (solo Unix/Linux):
dotnet sln todo.slnx add **/*.csprojAgregue 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 **/*.csprojQuite 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 migrateCree 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-folderdedotnet slnpara 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 mylibsEn 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)