Установить код завершения приложения / уровень ошибки из приложения WinForms, запускаемого как консольное приложение - PullRequest
0 голосов
/ 27 февраля 2019

Как мне установить код завершения приложения из приложения Winforms, которое я запускаю как консольное приложение?Конечно, не разбивая консольное приложение на отдельную DLL.

У меня есть приложение Winforms.В прошлом кто-то решил создать параметры командной строки, которые будут запускаться как консольное приложение вместо приложения WinForms.Я знаю, что разбить его на отдельный проект консольного приложения - это решение, но без этого есть ли способ установить код завершения приложения?

Я пытался:

  1. Наличие основного возврата int

  2. Вызов Environment.Exit (int)

  3. Настройка 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;
    }
}
...