La aplicación de la consola se cierra inmediatamente después de abrirse en el estudio visual

Intento abrir una aplicación de consola en Visual Studio construido en C #. Tan pronto como lo abra, se cierra de inmediato.

Sé que Windows establece que esto es un defecto de seguridad (al menos, creo). ¿Cómo puedo solucionar esto?

Sé que puedo comstackrlo y crear un acceso directo y modificar el destino para que tenga la ubicación del símbolo del sistema antes de la ubicación de las aplicaciones. Aunque el progtwigdor que creó esto lo tiene generando información en la salida de Visual Studio, entonces es imperativo que solo lo abra allí.

Sucede con la mayoría de las aplicaciones y no solo en Visual Studio, solo que en este caso necesito que se abra en VS 2010. Estoy usando Windows 7.

Este es un problema antiguo y ha inspirado varias caricaturas divertidas:

enter image description here

Vamos a arreglarlo Lo que desea hacer es pedirle al usuario que presione la tecla Any cuando la aplicación de la consola se inició desde un acceso directo en el escritorio, Windows Explorer o Visual Studio. Pero no cuando se inició desde el procesador de comandos que ejecuta su propia consola. Puede hacerlo con un pequeño pinvoke, puede averiguar si el proceso es el único propietario de la ventana de la consola, así:

using System; class Program { static void Main(string[] args) { Console.WriteLine("Working on it..."); //... Console.WriteLine("Done"); PressAnyKey(); } private static void PressAnyKey() { if (GetConsoleProcessList(new int[2], 2) < = 1) { Console.Write("Press any key to continue"); Console.ReadKey(); } } [System.Runtime.InteropServices.DllImport("kernel32.dll")] private static extern int GetConsoleProcessList(int[] buffer, int size); } 

También puede ejecutar la aplicación presionando (Ctrl + F5). Esto permitirá que se ejecute en modo “Versión”, y de forma predeterminada, tendrá que presionar “regresar” para cerrar la ventana.

Intente agregar Console.ReadKey(); al final del método Main (). Esta es una manera rápida y sucia de evitar que la ventana se cierre sola.

Debe esperar la entrada del usuario. Utilice Console.ReadLine() , Console.Read() o Console.ReadKey() .