【问题标题】:Exception is not being caught when program installed with a msi file使用 msi 文件安装程序时未捕获异常
【发布时间】:2017-04-28 15:54:46
【问题描述】:

我制作了一个运行时在 VIsual Studio 中工作的 WPF 程序。 我使用 Visual Installer Projects 2017 为我的程序制作了一个安装程序。在某个部分程序崩溃,我得到以下对话框:

Program1.exe [10204] 中出现未处理的 Microsoft.NET Framework 异常。

我的 catch 块是这样的

Dispatcher.Invoke(new Action(() =>
            {
                EnableContent();
            }));
        }
        catch (AggregateException e)
        {
            MessageBox.Show(e.ToString());
            Dispatcher.Invoke(new Action(() =>
            {
                UpdateLoadMsg("No internet connection.", MsgType.FAIL);
            }));
        }
        catch (Exception e)
        {
            MessageBox.Show(e.ToString());
            Dispatcher.Invoke(new Action(() =>
            {
                UpdateLoadMsg("Something went wrong.", MsgType.FAIL);
            }));
        }

消息框永远不会显示!显然异常没有被捕获。如何调试?

【问题讨论】:

  • 您是否有转储到您安装它的 PC 中的异常数据?
  • @vipersassassin 在哪里可以找到我电脑上的异常数据?
  • 系统事件日志中应该有一些东西。但是您确定异常源自try 块内部吗?
  • 你能显示你用来访问资源的代码吗?
  • 是的,将文件作为资源嵌入实际上并没有将文件放入文件系统中,实际上恰恰相反。它实际上所做的就是将文件嵌入到可执行文件中。您需要以不同的方式访问文件才能从资源中使用它。

标签: c# .net wpf


【解决方案1】:

相关

我通过查看系统日志http://www.dummies.com/computers/operating-systems/windows-10/how-to-use-event-viewer-in-windows-10/ 找到了导致异常的原因。

不相关

引发的异常是 FileNotFoundException。设置 buildaction = embedded resource 还不够,我必须将文件添加为附加安装文件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-30
    • 1970-01-01
    相关资源
    最近更新 更多