1

我已经在此处此处以及其他地方阅读了有关为 .NET 控制台应用程序设置退出代码的不同方法。在 Windows 上从 cmd.exe(或在 powershell 中执行时在 $LastExitCode 中)执行控制台应用程序后,它们都会在 %ERRORLEVEL% 中产生正确的值。

但是,当我创建一个简单的 C# 或 VB.NET 控制台应用程序并从调试器运行它时,调试器输出窗口中列出的退出代码始终为零,除非使用returnEnvironment.Exit(Int32)Environment.ExitCode使用或在项目选项中禁用Visual Studio 托管进程时。

两者的调试输出,

namespace TestDotNetConsoleAppExitCode
{
    class Program
    {
        static int Main(string[] args)
        {
            return -3;
        }
    }
}

Module Module1
    Function Main() As Integer
        Return -3
    End Function
End Module

结果是

程序“[...] ....vshost.exe”已退出,代码为 0 (0x0)。

这至少发生在 Win10 和 VS2010 和 VS2015 中,所有.NET 框架从 2.0 到 4.7.2,但在.NET Core上没有(那里没有 vshost)。

我缺少一些项目或视觉工作室选项吗?

4

0 回答 0