我在. net中有一个简单的控制台应用程序。这只是一个更大应用程序的测试部分。我想指定控制台应用程序的“退出代码”。我怎么做呢?


当前回答

如果你的main有一个无效返回签名,请使用ExitCode。否则,您需要通过您返回的值“设置”它。

从环境。ExitCode属性:

如果Main方法返回void,则可以使用此属性设置将返回到调用环境的退出代码。如果Main不返回void,则忽略此属性。这个属性的初始值为零。

其他回答

System.Environment.ExitCode 

看到环境。ExitCode财产。

作为斯科特·门罗回答的更新:

在c# 6.0和VB中。NET 14.0 (Visual Studio 2015),或环境。ExitCode或Environment.Exit(ExitCode)用于从控制台应用程序返回非零代码。改变Main的返回类型没有效果。 在f# 4.0 (Visual Studio 2015)中,主入口点的返回值被尊重。

系统错误码可在“系统错误码(0 ~ 499)”中查询。

你会发现典型的代码,如2表示“文件未找到”或5表示“访问被拒绝”。

当你偶然发现一个未知的代码时,你可以使用这个命令来找出它的意思:

net helpmsg decimal_code

例如,

net helpmsg 1

返回

Incorrect function

枚举选项非常棒。但是,可以通过将数字相乘来改进:

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

在出现多个错误的情况下,将特定的错误数字加在一起将得到一个表示检测到的错误组合的唯一数字。

例如,错误级别6只能由错误4和错误2组成,12只能由错误4和错误8组成,14只能由错误2、错误4和错误8组成,等等。

int code = 2;
Environment.Exit( code );