2015-02-08 81 views
2

当我跑我的C#的WinForms在Visual Studio IDE的可执行文件之外的第一次,我收到了以下对话:调试.NET崩溃不的Visual Studio IDE内发生

"<Application> has stopped working, Windows can check online..." 

所以我附到使用Visual Studio的附加到进程的过程,该过程显示程序在InitializeComponent()内暂停(但未提供进一步的线索)。

我编辑的应用程序,周围放置上述代码中的try/catch块,这让我打印以下MessageBox输出:

正如你所看到的,这表明,该应用程序是无法找到它需要的DLL。

我的问题:我是否可以在不修改应用程序的情况下实现这个结果(也就是说,没有try/catch块打印出具体细节)? Visual Studio附加到进程功能可以指导我解决缺少DLL的特定问题吗?如果是这样,怎么样?

+0

检查,如果你有如果你安装了这个组件,您的Windows应用程序不仅在根文件夹,而且在GAC ......同样引用的程序集 - 它可能是一个在全局程序集缓存已过时,您需要删除/更新它。 – Mez 2015-02-08 20:01:11

+0

@Mez我明白,但我的问题不是关于缺少的DLL。这是关于如何使用VS来达到该解决方案。 – Sabuncu 2015-02-08 20:02:22

+0

这似乎是一个重复:http://stackoverflow.com/questions/7572995/how-can-i-get-winforms-to-stop-silently-ignoring-unhandled-exceptions或至少非常相关。 – 2015-02-08 20:10:07

回答

3

如果启用这些信息,可以从融合日志中找到。 Fusion日志有助于诊断由于缺少依赖性而导致程序集加载失败。

此外,有时事件查看器有有用的信息。

https://msdn.microsoft.com/en-us/library/e74a18c4%28v=vs.110%29.aspx

+0

非常感谢。 (另外,你的Jan 12博客文章非常有用!) – Sabuncu 2015-02-08 20:16:29

+0

@Sabuncu:谢谢先生。 – 2015-02-08 20:25:50