261 votos

¿Cómo puedo especificar el código de salida de una aplicación de consola en .NET?

Tengo un trivial de aplicación de consola en .NET. Es sólo una prueba de parte de una aplicación mayor. Me gustaría especificar el "código de salida" de mi aplicación de consola. ¿Cómo puedo hacer esto?

362voto

TheSoftwareJedi Puntos 15921

Puede devolverlo a partir de Main si se declara la Main método para devolver int, o llame Environment.Exit(code).

168voto

Mark Brackett Puntos 46824

No es una respuesta - el retorno int ya han conseguido que...pero un llamamiento a la cordura. Por favor, por favor, defina sus códigos de salida en una enumeración, con Banderas si procede. Se hace la depuración y mantenimiento mucho más fácil (y, como un bono, usted puede imprimir los códigos de salida en su pantalla de ayuda - tienes uno de esos, ¿verdad?).

enum ExitCode : int {
  Success = 0,
  InvalidLogin = 1,
  InvalidFilename = 2,
  UnknownError = 10
}

int Main(string[] args) {
   return (int)ExitCode.Success;
}

37voto

Aron Tsang Puntos 271

Si usted va a utilizar el método sugerido por David, deberías echar un vistazo a la [Bandera] Atributo.

Esto le permite hacer poco sabio operaciones en las enumeraciones.

[Flags]
enum ExitCodes : int
{
  Success = 0,
  SignToolNotInPath = 1,
  AssemblyDirectoryBad = 2,
  PFXFilePathBad = 4,
  PasswordMissing = 8,
  SignFailed = 16,
  UnknownError = 32
}

Entonces

(ExitCodes.SignFailed | ExitCodes.UnknownError)

sería 16 + 32. :)

31voto

Scott Munro Puntos 4008

Hay tres métodos que puede utilizar para devolver un código de salida de una aplicación de consola.

  1. Modificar la Main método en su aplicación para que devuelve un int en lugar de void (una función que devuelve un Integer en lugar de Sub en VB.Net) y, a continuación, devolver el código de salida de ese método.
  2. Establecer el Environment.ExitCode propiedad en el código de salida. Tenga en cuenta que el método 1. tiene prioridad - si el Main método devuelve otra cosa que void (es un Sub en VB.Net) entonces el valor de esta propiedad será ignorado.
  3. Aprobar el código de salida a la Environment.Exit método. Esto finalizará el proceso inmediatamente a diferencia de los otros dos métodos.

Una norma importante que debe observarse es que 0 representa el " Éxito".

En relación a este tema, considere la posibilidad de utilizar una enumeración para definir los códigos de salida que de su aplicación se va a devolver. El atributo FlagsAttribute le permitirá regresar a una combinación de códigos.

También, asegúrese de que su aplicación se compila como una " Aplicación de Consola'.

24voto

palehorse Puntos 8268
int code = 2;
Environment.Exit( code );

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X