Установить код завершения приложения / уровень ошибки из приложения WinForms, запускаемого как консольное приложение
Как установить код завершения приложения из приложения Winforms, которое я запускаю как консольное приложение? Не разбивая консольное приложение на отдельную DLL, конечно.
У меня есть приложение Winforms. В прошлом кто-то решил создать параметры командной строки, которые будут запускаться как консольное приложение вместо приложения WinForms. Я знаю, что разбить его на отдельный проект консольного приложения - это решение, но без этого есть ли способ установить код завершения приложения?
Я старался:
Иметь основной возврат int
Вызов Environment.Exit(int)
Установка Environment.ExitCode = int
Никто не работал.
Затем, конечно, из командной строки я запустил команду ниже. Но код ошибки не обновлялся.
echo% errorlevel%
public static class Program
{
// defines for commandline output
[DllImport("kernel32.dll")]
static extern bool AttachConsole(int dwProcessId);
private const int ATTACH_PARENT_PROCESS = -1;
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
public static int Main(string[] args)
{
// redirect console output to parent process;
// must be before any calls to Console.WriteLine()
AttachConsole(ATTACH_PARENT_PROCESS);
//make sure to update 0 to another number to make sure you aren't getting a false positive
return 0;
}
}