Cómo ejecutar la aplicación de consola .NET Core desde la línea de comandos

Respuestas:

273

Si es una aplicación dependiente del marco (el valor predeterminado), lo ejecuta dotnet yourapp.dll.

Si se trata de una aplicación autónoma, puede ejecutarla yourapp.exeen Windows y ./yourappUnix.

Para obtener más información sobre las diferencias entre los dos tipos de aplicaciones, consulte el artículo sobre implementación de aplicaciones de .NET Core en .Net Docs.

svick
fuente
22
Es sorprendente cuánto tiempo me llevó descubrir esto. Estoy probando todo tipo de comandos de "dotnet run", etc. Este es el primer lugar que he encontrado en muchas búsquedas que dan el uso correcto de dotnet para ejecutar una aplicación de consola. ¿Por qué Microsoft hizo que .NET Core fuera tan amigable para los desarrolladores?
Glen Thomas
2
@GlenThomas Si desea ejecutar una aplicación que está desarrollando, puede usarla dotnet run. Además, ¿dónde miraste? ¿Dónde esperarías esta información?
svick
1
"dotnet run" ya no parece ser el caso de los proyectos principales de .NET que utilizan la configuración más reciente de MSBuild csproj en lugar de los archivos antiguos project.json.
Glen Thomas
1
@GlenThomas Eso no es cierto, dotnet runfunciona igual para los nuevos proyectos csproj que para project.json.
svick
55
@GlenThomas, no estoy seguro si este es el problema que estaba teniendo, pero cuando intente usarlo dotnet run, asegúrese de estar en el directorio del proyecto, no en el directorio de la solución.
Ryan Lundy
46

Puede crear fácilmente un EXE (para Windows) sin usar ningún comando de compilación críptico. Puedes hacerlo bien en Visual Studio.

  1. Haga clic derecho en el Proyecto de aplicación de consola y seleccione Publicar .
  2. Se abrirá una nueva página (captura de pantalla a continuación)
  3. Presiona Configurar ...
  4. Luego cambie el modo de implementación a independiente o dependiente del marco . .NET Core 3.0 presenta una implementación de archivo único que es un solo ejecutable.
  5. Use "dependiente del marco" si sabe que la máquina de destino tiene un tiempo de ejecución de .NET Core, ya que producirá menos archivos para instalar.
  6. Si ahora ve la carpeta bin en el explorador, encontrará el archivo .exe.
  7. Tendrá que implementar el exe junto con cualquier archivo de configuración y dll compatible.

Publicación de la aplicación de consola

Encadenar
fuente
55
Sí. Existe el EXE, junto con otros 217 archivos (api-ms-win-core-namedpipe-l1-1-0.dll, etc.). ¿Hay alguna forma de agrupar esto en un solo EXE?
Elton el
1
Buena pregunta @Elton. No lo se. AFAIK tienes que desplegar todos los dlls.
Jess
2
Creo que el hecho de que esté configurado para ser autónomo requeriría que todas esas DLL estén allí. Si no los quiere allí, el modo de implementación probablemente deba ser dependiente del marco
kippermand
1
¡Me hiciste el viernes!
Robin Johnson el
20

También puede ejecutar su aplicación como cualquier otra aplicación de consola, pero solo después de la publicación.

Supongamos que tiene la aplicación de consola simple llamada MyTestConsoleApp. Abra la consola del administrador de paquetes y ejecute el siguiente comando:

dotnet publish -c Debug -r win10-x64 

-c indicador significa que desea utilizar la configuración de depuración (en otro caso, debe usar el valor Release) - r indicador significa que su aplicación se ejecutará en la plataforma Windows con arquitectura x64.

Cuando finalice el procedimiento de publicación, verá el archivo * .exe ubicado en su directorio bin / Debug / Publish.

Ahora puede llamarlo a través de herramientas de línea de comandos. Abra la ventana CMD (o terminal), muévase al directorio donde está ubicado su archivo * .exe y escriba el siguiente comando:

>> MyTestConsoleApp.exe argument-list

Por ejemplo:

>> MyTestConsoleApp.exe --input some_text -r true
Tequila
fuente
2

Con dotnetcore3.0 puede empaquetar la solución completa en un archivo ejecutable de un solo archivo utilizando la PublishSingleFilepropiedad

-p:PublishSingleFile=True

Fuente ejecutable de un solo archivo

Un ejemplo de Self Contained, ReleaseOSX ejecutable:

dotnet publish -c Release -r osx-x64 -p:PublishSingleFile=True --self-contained True

Un ejemplo de Self Contained, DebugLinux 64bit ejecutable:

dotnet publish -c Debug -r linux-x64 -p:PublishSingleFile=True --self-contained True

La compilación de Linux es independiente de la distribución y los he encontrado trabajando en Ubuntu 18.10, CentOS 7.7 y Amazon Linux 2.

Un ejecutable autocontenido incluye Dotnet Runtime y Runtime no requiere ser instalado en una máquina de destino. Los ejecutables publicados se guardan en:

<ProjectDir>/bin/<Release or Debug>/netcoreapp3.0/<target-os>/publish/ en Linux, OSX y

<ProjectDir>\bin\<Release or Debug>\netcoreapp3.0\<target-os>\publish\ en Windows

TMT
fuente
También puede agregar la configuración al archivo csproj:<PublishSingleFile>true</PublishSingleFile>
Mahdi Ataollahi
0

Con CMD puede ejecutar un proyecto de consola .net core si .net core SDK está instalado en su máquina:

Para ejecutar el proyecto de consola usando la línea de comandos de Windows, elija la ruta específica de su directorio y escriba el siguiente comando a continuación

dotnet run

Saurabh Nachankar
fuente
0

antes de ejecutar en cmd prompt, asegúrese de que "appsettings.json" tenga los mismos valores que "appsettings.Development.json".

En el símbolo del sistema, vaya hasta la carpeta bin / debug / netcoreapp2.0. luego ejecute "dotnet applicationname.dll"

rahul
fuente