一旦发生未处理的异常,我需要重新启动应用程序。 这是一个.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");
}
我故意使用按钮单击引发异常。当我在计算机上测试发行版时,它将关闭,然后正常重启。但是,当我将其部署到生产机器上时,事实并非如此。
有什么主意吗?
谢谢。
答案 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();