Я читал о различных способах установки кода завершения для консольного приложения .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).
Есть ли какой-нибудь проект или визуальная студия?Я скучаю по тебе?