部署后,Winform应用程序重启无法正常工作

时间:2019-01-09 15:34:05

标签: c# winforms

一旦发生未处理的异常,我需要重新启动应用程序。 这是一个.NET WinForm应用程序。

  [STAThread]
    static void Main()
    {
        try
        {
            Application.ThreadException += new ThreadExceptionEventHandler(Application_ThreadException);
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new MainForm());

        }
        catch (SystemException ex)
        {
            Log.AddEntry(ex.Message);
        }


    }
    static void Application_ThreadException(object sender, ThreadExceptionEventArgs e)
    {
        Console.WriteLine(e.Exception.Message);
        Application.Exit();
        System.Diagnostics.Process.Start(Environment.CurrentDirectory+"\\Taskman.exe");
    }

我故意使用按钮单击引发异常。当我在计算机上测试发行版时,它将关闭,然后正常重启。但是,当我将其部署到生产机器上时,事实并非如此。

有什么主意吗?

谢谢。

2 个答案:

答案 0 :(得分:2)

您应该在退出当前进程之前启动新进程,并确保将正确的路径传递给Process.Start方法:

static void Application_ThreadException(object sender, ThreadExceptionEventArgs e)
{
    Console.WriteLine(e.Exception.Message);
    System.Diagnostics.Process.Start(System.Reflection.Assembly.GetExecutingAssembly().Location);
    Application.Exit();
}

答案 1 :(得分:0)

呼叫此:

Application.Restart();

代替Application.Exit();