安装后未抛出 C# 异常

C# Exception not thrown after installation

我们在 Main() 中使用 try-catch-block 来捕获应用程序的所有异常并将它们写入 lgo 文件。在 VS2012 的发布配置中一切正常。抛出异常并将其保存到文件中。

使用WIX创建安装程序并安装应用程序后,直接抛出异常(并显示为对话框),但未被Main()中的try-catch-block捕获,因此未保存在文件中了。如何捕获 Main() 中的异常?

这是Program.cs中的代码:

[STAThread]
    static void Main()
    {
        try
        {

            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new MainForm());
        }
        catch (Exception ex)
        {
            ExceptionLog.SaveExceptionCloseApp(Program.RuntimeGUID, System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex);
        }
    }

这对我们有用:
@Hans Passant:谢谢你的解决方案。

    [STAThread]
    static void Main()
    {           
        Application.ThreadException += Application_ThreadException;

        Application.EnableVisualStyles();
        Application.SetCompatibleTextRenderingDefault(false);
        Application.Run(new MainForm());
    }

    static void Application_ThreadException(object sender, ThreadExceptionEventArgs e)
    {
        ExceptionLog.SaveExceptionCloseApp(Program.RuntimeGUID, System.Reflection.MethodBase.GetCurrentMethod().Name + "()", e.Exception);
    }