562 Stimmen

Wie kann ich den Exit-Code einer Konsolenanwendung in .NET angeben?

Ich habe eine triviale Konsolenanwendung in .NET. Es ist nur ein Testteil einer größeren Anwendung. Ich möchte den "Exit-Code" meiner Konsolenanwendung angeben. Wie kann ich das tun?

26voto

palehorse Punkte 24327
int code = 2;
Environment.Exit( code );

16voto

Esteban Araya Punkte 28454

Geben Sie einfach den entsprechenden Code von main zurück.

int Main(string[] args)
{
    return 0; // Or exit code of your choice
}

11voto

crashmstr Punkte 27437

Utilisez ExitCode wenn Ihr main eine ungültige Rückgabesignatur hat. Andernfalls müssen Sie es durch den Wert, den Sie zurückgeben, "setzen".

Desde Environment.ExitCode-Eigenschaft :

Wenn die Main-Methode void zurückgibt, können Sie diese Eigenschaft verwenden, um den Exit-Code festzulegen, der an die aufrufende Umgebung zurückgegeben wird. Wenn Main nicht void zurückgibt, wird diese Eigenschaft ignoriert. Der Anfangswert dieser Eigenschaft ist Null.

8voto

David Punkte 898

El Aufzählungsoption ist ausgezeichnet. Sie kann jedoch noch verbessert werden, indem die Zahlen wie in multipliziert werden:

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

Bei mehreren Fehlern ergibt die Addition der einzelnen Fehlernummern eine eindeutige Nummer, die die Kombination der erkannten Fehler darstellt.

Ein Fehlerlevel von 6 kann beispielsweise nur aus den Fehlern 4 und 2 bestehen, 12 kann nur aus den Fehlern 4 und 8 bestehen, 14 kann nur aus 2, 4 und 8 bestehen usw.

8voto

Vern DeHaven Punkte 136

Als Update zu Scott Munro's Antwort :

  • In C# 6.0 und VB.NET 14.0 ( Visual Studio 2015 ), entweder Environment.ExitCode o Environment.Exit(exitCode) ist erforderlich, um von einer Konsolenanwendung einen Code ungleich Null zurückzugeben. Das Ändern des Rückgabetyps von Main hat keine Wirkung.
  • Unter F# 4.0 (Visual Studio 2015) wird der Rückgabewert der Funktion main Einstiegspunkt beachtet wird.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X