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?
Antworten
Zu viele Anzeigen?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.
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.
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.