Неправильный код завершения консольного приложения .NET в окне вывода отладчика Visual Studio при использовании возврата из Main - PullRequest
0 голосов
/ 21 февраля 2019

Я читал о различных способах установки кода завершения для консольного приложения .NET здесь и здесь и в других местах.И все они приводят к правильному значению% ERRORLEVEL% после выполнения консольного приложения из cmd.exe (или в $ LastExitCode при выполнении из powershell) в Windows.

Однако, когда я создаюпростое консольное приложение на C # или VB.NET и запуск его из отладчика, код выхода, указанный в окне вывода отладчика, всегда равен нулю, если вместо использования return , Environment.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 framework с 2.0 до 4.7.2, но не с .NET Core (там нет vshost).

Есть ли какой-нибудь проект или визуальная студия?Я скучаю по тебе?

...