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


当前回答

只需从main返回相应的代码。

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

其他回答

我这样做:

int exitCode = 0;
Environment.Exit(exitCode);

或者你可以抛出一个错误(个人偏好):

throw new ArgumentException("Code 0, Environment Exit");

我选择了ArgumentException,但你可以输入other。它会工作得很好。

如果您打算使用David建议的方法,您还应该看一下[Flags]属性。

这允许您对枚举进行逐位操作。

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

Then

(ExitCodes.SignFailed | ExitCodes.UnknownError)

就是16 + 32。:)

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

从环境。ExitCode属性:

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

使用这段代码

Environment.Exit(0);

如果你不想返回任何东西,就使用0作为int。

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