El comando dotnet de .NET 6.0 te permite llevar a cabo 2 tareas:
- Gestionar proyectos, por ejemplo:
- dotnet build para compilar tu proyecto actual.
- dotnet add Proyecto package Paquete para agregar un paquete al proyecto indicado.
- Ejecutar aplicaciones, por ejemplo:
- dotnet run para ejecutar tu proyecto actual.
- dotnet Aplicacion.dll para ejecutar la aplicación indicada.
Recuerda que todos los comandos tienen la opción --help para obtener ayuda. Por ejemplo, dotnet --help te muestra todos los comandos disponibles y dotnet run --help te muestra todas las opciones de dicho comando.
A continuación, te listo todos los comandos de dotnet con sus opciones más comunes y utilizadas.
Gestionar Proyectos
Creación de Proyectos
Nuevo Proyecto
Crea un nuevo proyecto a partir de una plantilla:
dotnet new console crea una nueva aplicación de consola.
dotnet new mvc crea una nueva aplicación ASP.NET Core MVC.
dotnet new webapi crea una nueva aplicación ASP.NET Core Web API.
Para saber todas las plantillas que tienes disponibles, ejecuta:
dotnet new --list
dotnet new -l sería la forma abreviada.
Para indicar el nombre del proyecto:
dotnet new console --name Nombre
dotnet new console -n Nombre
Por defecto, crea el nuevo proyecto en el directorio actual. Para indicar un directorio distinto:
dotnet new console --name Nombre --output Directorio
dotnet new console -n Nombre -o Directorio
Compilar un Proyecto
Para compilar el proyecto actual:
dotnet build
Si necesitas indicar el directorio del proyecto a compilar:
dotnet build Directorio
También puedes indicar el proyecto:
dotnet build Directorio/Proyecto.csproj
Por defecto, se compilará en modo depuración, que es lo normal en desarrollo. Es lo mismo que hacer:
dotnet build --configuration Debug
dotnet build -c Debug
Pero para ponerlo en producción debes indicarlo:
dotnet build -c Release
Para indicar el directorio de salida de los archivos compilados:
dotnet build --output Directorio
dotnet build -o Directorio
Y para indicar el framework de .NET Core a usar:
dotnet build --framework net6.0
Para saber qué versiones tienes instaladas del .NET Core y si están actualizadas:
dotnet sdk check
Si necesitaras hacer ajustes más finos, tienes acceso al MSBuild mediante:
dotnet msbuild -p:Configuration=Debug;TargetFrameworkVersion=v3.5
Por último, en caso de que quieras limpiar una compilación anterior debes ejecutar:
dotnet clean
Publicar un Proyecto
Consiste en crear una versión de la aplicación que pueda se enviada a otra persona:
dotnet publish Proyecto --configuracion Release --output Directorio
dotnet publish Proyecto -c Release -o Directorio sería su versión abreviada.
dotnet publish -c Release -o Directorio si ya estamos dentro de la carpeta del proyecto.
dotnet publish -c Debug -o Directorio para publicar una versión que permita ser depurada.
dotnet publish si no se indica configuración, por defecto, será una versión de depuración.
También podemos indicar el framework:
dotnet publish -c Release --framework net6.0
dotnet publish -c Release -f net6.0 es su versión abreviada.
Agrupar Varios Proyectos en una Solución
Crea una nueva solución, que es la forma de agrupar y gestionar varios proyectos:
dotnet new sln -n Solucion
Agrega uno o varios proyectos existentes a la solución:
dotnet sln add Proyecto1
dotnet sln add Proyecto2
dotnet sln add Proyecto3
En caso de tener varias soluciones, puedes indicar la solución a la que quieres agregar el proyecto:
dotnet sln Solucion add Proyecto
También puedes excluir algún proyecto de la solución:
dotnet sln remove Proyecto1
Para obtener la lista de proyectos de una solución:
dotnet sln list
Para compilar todos los proyectos de una solución:
dotnet build Solucion.sln
Referencias Entre Proyectos
Para que un proyecto haga referencia a otro:
dotnet add Proyecto1 reference Proyecto2
que agrega el Proyecto2 dentro del Proyecto1.
Si estás ya dentro de la carpeta del Proyecto1, tendrás que indicarlo mediante una ruta relativa:
dotnet add reference ../Proyecto2
Para quitar una referencia:
dotnet remove Proyecto1 reference Proyecto2
Si estás dentro de la carpeta del Proyecto1, no hace falta indicarlo:
dotnet remove reference Proyecto2
Y para listar las referencias que tiene un proyecto:
dotnet list Proyecto reference
Si estás dentro de la carpeta del Proyecto, no hace falta indicarlo:
dotnet list reference
Paquetes NuGet
Paquetes NuGet de un Proyecto
Agregar un nuevo paquete al proyecto:
dotnet add Proyecto package Paquete
dotnet add package Paquete si ya estás dentro de la carpeta del proyecto.
Quitar un paquete existente del proyecto:
dotnet remove Proyecto package Paquete
dotnet remove package Paquete si ya estás dentro de la carpeta del proyecto.
Y para listar los paquetes de un proyecto:
dotnet list Proyecto package
dotnet list package si ya estás dentro de la carpeta del proyecto.
También puedes instalar todos los paquetes de los que depende un proyecto con:
dotnet restore
Gestionar Orígenes de los Paquetes NuGet
Agregar una ruta o URL como nuevo origen de paquetes:
dotnet nuget add source Ruta --name Origen
dotnet nuget add source Ruta -n Origen --username Usuario --password Contraseña para indicar las credenciales de acceso al origen.
dotnet nuget add source Ruta -n Origen -u Usuario -p Contraseña es su forma abreviada.
Para actualizar una ruta o URL de un origen existente de paquetes:
dotnet nuget update source Origen --source Ruta
dotnet nuget update source Origen -s Ruta es su forma abreviada.
Para eliminar un origen existente de paquetes:
dotnet nuget remove source Origen
Para obtener la lista de orígenes configurados.
dotnet nuget list source
Para habilitar y deshabilitar orígenes de paquetes:
dotnet nuget enable source Origen
dotnet nuget disable source Origen
Gestionar la Caché Local de Paquetes
dotnet nuget locals all --list muestra información de la caché local de paquetes.
dotnet nuget locals all --clear limpia la caché local de paquetes.
Crear un Paquete NuGet
Para crear un nuevo paquete NuGet (extensión .nupkg):
dotnet pack Proyecto
dotnet pack si ya estamos dentro de la carpeta del proyecto.
dotnet pack Proyecto --output Directorio para indicar el directorio donde se generará el paquete.
Gestionar Paquetes NuGet de un Origen
Para enviar un paquete al origen por defecto.
dotnet nuget push Proyecto.nupkg
Para indicar un origen concreto:
dotnet nuget push Proyecto.nupkg --source Origen
dotnet nuget push Proyecto.nupkg -s Origen es su versión abreviada.
También se puede indicar el API Key del paquete:
dotnet nuget push Proyecto.nupkg --api-key 4003d786-cc37-4004-bfdf-c4f3e8ef9b3a
dotnet nuget push Proyecto.nupkg -k 4003d786-cc37-4004-bfdf-c4f3e8ef9b3a es su versión abreviada.
Para eliminar un paquete, hay que indicar su nombre y su versión:
dotnet nuget delete Proyecto 1.0
dotnet nuget delete Proyecto 1.0 --source Origen para indicar el origen.
dotnet nuget delete Proyecto 1.0 -s Origen es su versión abreviada.
Entity Framework
Instalación
Antes que nada, hay que instalar la herramienta de Entity Framework:
dotnet tool install --global dotnet-ef
Si necesitas actualizar la herramienta, sería:
dotnet tool update --global dotnet-ef
También vas a necesitar el paquete con el diseñador:
dotnet add package Microsoft.EntityFrameworkCore.Design
Si todo ha ido bien, podrás comprobarlo ejecutando:
dotnet ef
que debe mostrar información sobre la herramienta.
Migraciones
Para crear una nueva migración, con los últimos cambios:
dotnet ef migrations add Migración
Si tienes que eliminar una migración:
dotnet ef migrations remove Migración
Y para listar las migraciones existentes:
dotnet ef migrations list
Muy útil también es poder ver los comandos SQL que lanzará una migración:
dotnet ef migrations script
Gestionar Base de Datos
Para crear la base de datos y/o lanzar las migraciones pendientes:
dotnet ef database update
Para eliminar una base de datos:
dotnet ef database drop
Gestionar Contextos
Para obtener información del contexto:
dotnet ef dbcontext info
Para obtener la lista de los tipos de contextos:
dotnet ef dbcontext list
Para crear el andamiaje de un contexto:
dotnet ef dbcontext scaffold
Para generar el SQL de un contexto:
dotnet ef dbcontext script
Tests
Para lanzar los tests (unitarios, integración, etc.) que haya programados:
dotnet test Proyecto lanza los tests de un proyecto.
dotnet test Solución lanza todos los tests de todos los proyectos de la solución.
dotnet test Directorio lanza todos los tests que haya en las clases de un directorio.
dotnet test Aplicacion.dll lanza todos los tests que haya incluidos en la aplicación.
dotnet test lanzar los test según la carpeta donde se encuentre.
Para enviar el resultado de los tests a un archivo log:
dotnet test --diag Archivo.log
dotnet test -d Archivo.log es su versión abreviada.
Si necesitas depurar algún test, pones los puntos de interrupción en el código y lanzas:
dotnet test --configuration Debug
dotnet test -c Debug
Y para listas los tests que hay definidos:
dotnet test --list-tests
Ejecutar Aplicaciones
Para ejecutar una aplicación desarrollada en .NET se usa:
dotnet Aplicacion.dll
Si tienes el código fuente, entra en la carpeta de su proyecto y ejecuta:
dotnet run
Si quieres indicar la configuración con la que queremos ejecutarlo:
dotnet run --configuration Debug para la versión en desarrollo, que permite ser depurada.
dotnet run --configuracion Release para la versión en producción.
dotnet run -c Debug sería su versión abreviada.
Para indicar la carpeta del proyecto:
dotnet run --project Proyecto
Y para indicar el framework:
dotnet run --framework net6.0
dotnet run -f net6.0 sería su versión abreviada.
Importante, para pasar argumentos a la aplicación, hay que separarlos con dos guiones:
dotnet run -- argumento1 argumento2 argumento3
Certificados HTTPS
Solo en Windows, para indicar que la aplicación confíe en los certificados HTTPS de desarrollo (autofirmados) de la máquina:
dotnet dev-certs https --trust
Información
dotnet --version para obtener la versión de dotnet instalada.
dotnet --information para obtener información extendida.
dotnet --list-runtimes para ver la lista de versiones montadas.
dotnet --list-sdks para ver la lista de SDKs montados.