WPF 应用程序在 Visual Studio 之外崩溃

Posted

技术标签:

【中文标题】WPF 应用程序在 Visual Studio 之外崩溃【英文标题】:WPF App crashes outside of Visual Studio 【发布时间】:2010-10-26 15:12:42 【问题描述】:

我有一个在 VS.NET 内运行良好的 WPF 应用程序,但如果我尝试在 VS.NET 之外运行它,我会收到“...遇到问题需要关闭...”对话。这发生在调试和发布模式下。为什么会这样?

【问题讨论】:

【参考方案1】:

这很可能是一个未捕获的异常。您可能想尝试使用Application.DispatcherUnhandledException Event 显示一个带有异常的消息框以缩小问题范围:

将此作为<Application> 标记的属性添加到您的App.xaml:

DispatcherUnhandledException="Application_DispatcherUnhandledException"

而该处理程序的实现可能如下所示:

private void Application_DispatcherUnhandledException(object sender, System.Windows.Threading.DispatcherUnhandledExceptionEventArgs e)

    System.Windows.MessageBox.Show(e.Exception.ToString());

但如果没有太多上下文,这可能是导致它的任何原因,当您查看异常时,您可能会更好地了解它的来源。

【讨论】:

谢谢,我添加并找到了问题。让我失望的是我没有得到旧的 WinForms Unhandled Exception 对话框来显示信息,所以我认为这是一个更严重的错误。我在 OnStartUp 覆盖中添加了这个以及 AppDomain.UnhandledException 处理程序。【参考方案2】:

确保您的可执行文件需要在与可执行文件相同的文件夹中运行所需的所有库,以及任何必要的配置文件或清单文件。

您是否已经尝试直接从调试/发布文件夹运行应用程序?您的所有引用都标记为“复制到输出目录”吗?

要检查的另一件事是您的项目文件未配置为向您的应用程序添加参数。

【讨论】:

以上是关于WPF 应用程序在 Visual Studio 之外崩溃的主要内容,如果未能解决你的问题,请参考以下文章

WPF 应用程序:Visual Studio 与 Expression Blend

如何在 Visual Studio 2012 速成版附带的混合中制作 wpf 应用程序

如何在Visual Studio 2013中使用Ribbon For WPF

WPF 加速键,如 Visual Studio

Visual Studio中WPF和WFA程序的区别

如何在 Visual Studio 2012 中使用 SQL Server Express 2008 部署 wpf 应用程序?