dotnet run
Este artículo se aplica a: ✔️ SDK de .NET Core 2.x y versiones posteriores
NOMBRE
dotnet run: ejecuta el código fuente sin comandos explícitos de compilación o inicio.
Sinopsis
dotnet run [-a|--arch <ARCHITECTURE>] [-c|--configuration <CONFIGURATION>]
[-f|--framework <FRAMEWORK>] [--force] [--interactive]
[--launch-profile <NAME>] [--no-build]
[--no-dependencies] [--no-launch-profile] [--no-restore]
[--os <OS>] [--project <PATH>] [-r|--runtime <RUNTIME_IDENTIFIER>]
[-v|--verbosity <LEVEL>] [[--] [application arguments]]
dotnet run -h|--help
Descripción
El comando dotnet run proporciona una opción conveniente para ejecutar la aplicación desde el código fuente con un comando. Es útil para un desarrollo iterativo rápido desde la línea de comandos. El comando depende del comando dotnet build para compilar el código. Los requisitos para la compilación, como que el cliente se deba restaurar primero, también se aplican a dotnet run.
Nota
dotnet run no respeta argumentos como /property:property=value, que sí los respeta dotnet build.
Los archivos de salida se escriben en la ubicación predeterminada, que es bin/<configuration>/<target>. Por ejemplo, si tiene una aplicación netcoreapp2.1 y ejecuta dotnet run, la salida se colocará en bin/Debug/netcoreapp2.1. Los archivos se sobrescriben según sea necesario. Los archivos temporales se colocan en el directorio obj.
Si el proyecto especifica varios marcos, al ejecutar dotnet run se produce un error a menos que se use la opción -f|--framework <FRAMEWORK> para especificar el marco.
El comando dotnet run debe usarse en el contexto de proyectos, no de ensamblados compilados. Si, por el contrario, está intentando ejecutar una DLL de aplicación dependiente del marco de trabajo, debe usar dotnet sin un comando. Por ejemplo, para ejecutar myapp.dll, use:
dotnet myapp.dll
Para obtener más información sobre el controlador dotnet, vea el tema Herramientas de la interfaz de la línea de comandos (CLI) de .NET.
Para ejecutar la aplicación, el comando dotnet run resuelve las dependencias de la aplicación que se encuentran fuera del entorno de tiempo de ejecución compartido desde la caché de NuGet. Dado que se usan dependencias almacenadas en caché, no se recomienda utilizar dotnet run para ejecutar aplicaciones en producción. En su lugar, cree una implementación mediante el comando dotnet publish e implemente la salida publicada.
Restauración implícita
No es necesario ejecutar dotnet restore porque lo ejecutan implícitamente todos los comandos que necesitan que se produzca una restauración, como dotnet new, dotnet build, dotnet run, dotnet test, dotnet publish y dotnet pack. Para deshabilitar la restauración implícita, use la opción --no-restore.
El comando dotnet restore sigue siendo válido en algunos escenarios donde tiene sentido realizar una restauración explícita, como las compilaciones de integración continua en Azure DevOps Services o en los sistemas de compilación que necesitan controlar explícitamente cuándo se produce la restauración.
Para obtener información sobre cómo administrar fuentes de NuGet, vea la documentación de dotnet restore.
Este comando admite las opciones de dotnet restore cuando se pasan con el formato largo (por ejemplo, --source). No se admiten las opciones de formato corto, como -s.
Descargas de manifiestos de cargas de trabajo
Cuando se ejecuta, este comando inicia una descarga asincrónica en segundo plano de manifiestos de publicidad de cargas de trabajo. Si la descarga no ha terminado cuando finaliza el comando, se detiene. Para obtener más información, vea Manifiestos de publicidad.
Opciones
--Delimita los argumentos a
dotnet runa partir de argumentos de la aplicación que se va a ejecutar. Todos los argumentos después de este delimitador se pasan a la aplicación que se ejecuta.
-a|--arch <ARCHITECTURE>Especifica la arquitectura de destino. Se trata de una sintaxis abreviada para establecer el identificador del entorno de ejecución (RID), donde el valor proporcionado se combina con el RID predeterminado. Por ejemplo, en un equipo
win-x64, al especificar--arch x86se establece el RID enwin-x86. Si usa esta opción, no use la opción-r|--runtime. Disponible a partir de .NET 6 (versión preliminar 7).
-c|--configuration <CONFIGURATION>Define la configuración de compilación. El valor predeterminado para la mayoría de los proyectos es
Debug, pero puede invalidar los valores de configuración de compilación en el proyecto.
-f|--framework <FRAMEWORK>Compila y ejecuta la aplicación con el marco especificado. El marco debe especificarse en el archivo de proyecto.
--forceFuerza la resolución de todas las dependencias, incluso si la última restauración se realizó correctamente. Especificar esta marca es lo mismo que eliminar el archivo project.assets.json.
-?|-h|--helpImprime una descripción de cómo usar el comando.
--interactivePermite que el comando se detenga y espere una entrada o una acción del usuario. Por ejemplo, para completar la autenticación. Disponible desde el SDK de .NET Core 3.0.
--launch-profile <NAME>El nombre del perfil de inicio (si lo hay) que se usará al iniciar la aplicación. Los perfiles de inicio se definen en el archivo launchSettings.json y se suelen denominar
Development,StagingyProduction. Para obtener más información, consulte Working with multiple environments (Trabajo con varios entornos).--no-buildNo compila el proyecto antes de ejecutarlo. También establece la marca
--no-restorede forma implícita.--no-dependenciesAl restaurar un proyecto con referencias de proyecto a proyecto (P2P), se restaura el proyecto raíz y no las referencias.
--no-launch-profileNo intenta usar launchSettings.json para configurar la aplicación.
--no-restoreNo ejecuta una restauración implícita al ejecutar el comando.
--os <OS>Especifica el sistema operativo (SO) de destino. Se trata de una sintaxis abreviada para establecer el identificador del entorno de ejecución (RID), donde el valor proporcionado se combina con el RID predeterminado. Por ejemplo, en un equipo
win-x64, al especificar--os osse establece el RID enos-x64. Si usa esta opción, no use la opción-r|--runtime. Disponible a partir de .NET 6 (versión preliminar 7).
--project <PATH>Especifica la ruta de acceso del archivo del proyecto que se va a ejecutar (nombre de la carpeta o ruta de acceso completa). Si no se especifica, se toma como predeterminado el directorio actual.
La abreviación
-ppara--projectestá en desuso a partir del SDK de .NET 6. Por un tiempo limitado a partir del SDK de .NET 6 RC1,-pseguirá pudiéndose usar para--projecta pesar de la advertencia de caída en desuso. Si el argumento proporcionado para la opción no contiene=, el comando acepta-pcomo forma abreviada para--project. De lo contrario, el comando da por supuesto que-pes una forma abreviada para--property. Este uso flexible de-ppara--projectse eliminará gradualmente en .NET 7.--property:<NAME>=<VALUE>Establece una o varias propiedades MSBuild. Especifique varias propiedades delimitadas por punto y coma o repitiendo la opción:
--property:<NAME1>=<VALUE1>;<NAME2>=<VALUE2> --property:<NAME1>=<VALUE1> --property:<NAME2>=<VALUE2>La forma abreviada
-pse puede usar para--property. Si el argumento proporcionado para la opción contiene=,-pse acepta como forma abreviada para--property. De lo contrario, el comando da por supuesto que-pes una forma abreviada para--project.Para pasar
--propertya la aplicación en lugar de establecer una propiedad MSBuild, proporcione la opción después del separador de sintaxis--, por ejemplo:dotnet run -- --property name=value-r|--runtime <RUNTIME_IDENTIFIER>Especifica el tiempo de ejecución de destino para el que restaurar los paquetes. Para obtener una lista de identificadores de tiempo de ejecución (RID), consulte el catálogo de RID. Opción corta
-rdisponible a partir del SDK de .NET Core 3.0.
-v|--verbosity <LEVEL>Establece el nivel de detalle del comando. Los valores permitidos son
q[uiet],m[inimal],n[ormal],d[etailed]ydiag[nostic]. De manera predeterminada, esminimal. Para obtener más información, vea LoggerVerbosity.
Ejemplos
Ejecución del proyecto en el directorio actual:
dotnet runEjecución del proyecto especificado:
dotnet run --project ./projects/proj1/proj1.csprojEjecute el proyecto en el directorio actual, especificando la configuración de versión:
dotnet run --property:Configuration=ReleaseEjecute el proyecto en el directorio actual (el argumento
--helpen este ejemplo se pasa a la aplicación, dado que se usa la opción--en blanco):dotnet run --configuration Release -- --helpRestaure las dependencias y herramientas del proyecto en el directorio actual para mostrar solo la salida mínima y, después, ejecute el proyecto:
dotnet run --verbosity m