una tutorial net microsoft libreria guia español crear como clases biblioteca asp arquitectura c# .net-core

c# - tutorial - ¿Es posible ejecutar la aplicación de consola.NET Core de forma silenciosa(ocultar la ventana de la consola)?



guia c# microsoft (5)

Intenté editar el archivo .xproj pero parece que es ignorado por VS / dotnet. No creo que se admita actualmente, ya que dotnet se desarrolló teniendo en cuenta los sitios web y las aplicaciones de consola. Microsoft ha decidido recientemente que volverán al buen viejo MSBuild. ( https://blogs.msdn.microsoft.com/dotnet/2016/05/23/changes-to-project-json/ )

Entonces, creo que tu mejor apuesta es esperar hasta entonces.

Estoy intentando automatizar algunas tareas para mí y escribí algunas aplicaciones de consola .NET Core 1.0 . Uno de ellos es BrowserRouter, una aplicación simple que, según el patrón de url, decide qué navegador / perfil de navegador abrir cuando hago clic en los enlaces de http (s).

Eso funciona bien, pero siempre hay una ventana de consola que aparece y desaparece inmediatamente.

¿Hay alguna manera de ejecutar la aplicación de consola .NET Core de forma silenciosa (ocultando la ventana de la consola)?

Sé que en .NET Framework completo es posible cambiar el tipo de salida a la aplicación de Windows, pero eso no está disponible (¿todavía?) Para .NET Core .


Probablemente esta no sea la mejor solución o la más limpia, pero es un truco que he usado antes. Si inicia una nueva aplicación de Windows Forms, luego elimina la referencia al formulario del archivo Program.cs, ejecutará la aplicación en segundo plano sin que aparezca nada en la barra de tareas ni en el escritorio. Sin embargo, aparece en el Administrador de tareas.

Utilicé este truco para escribir una aplicación para jugar una broma a un amigo. Se ejecutará en segundo plano y emitirá un pitido del sistema a intervalos aleatorios. Una vez más, probablemente no sea la solución más elegante, sino una forma de hacerlo.


Si, como yo, desea implementar una aplicación aspnet core mvc

  • en una red interna
  • No quiero IIS o WebHostService
  • No me importa Linux / Mac
  • y quiere ocultar la consola Kestrel del usuario

Luego, debe leer la documentación oficial de Microsoft sobre cómo alojar un núcleo Aspnet en un servicio de Windows.


Tenía muchas ganas de hacerlo como Martin resolvió pero no pude encontrar editbin.exe. Bueno, debería haber ejecutado el instalador de VS e instalado Visual C ++ pero tenía una memoria limitada, así que encontré otra forma de hacerlo NSubsys en nuguet

La aplicación se ejecutará en modo oculto en la publicación.

Nota para copiar el comando de instalación Npm desde nuget, ya que al buscarlo en el administrador de paquetes no se encontraron resultados.


Actualmente, esto no es posible directamente porque los archivos exe de Windows contienen una bandera que indica si se trata de una aplicación de "consola" o "GUI" que Windows evalúa incluso antes de iniciar la aplicación. Sin embargo, este indicador se puede cambiar utilizando editbin.exe (se suministra con las herramientas de compilación C ++ de VS).

Sobre esta base, podría crear una aplicación .NET Core independiente (eliminando el "type": "platform" de project.json y agregando una sección de tiempos de ejecución) para que la salida de su proyecto incluya un archivo .exe real y agregue una publicación -construcción de script que invoca editbin.exe /subsystem:windows yourapp.exe .