调试未在 Visual Studio IDE 内发生的 .NET 崩溃

Debugging .NET crash that does not happen within Visual Studio IDE

当我第一次 运行 我的 C# WinForms 可执行文件在 Visual Studio IDE 之外时,我收到以下对话框:

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

所以我使用 Visual Studio 的 Attach to Process 附加到进程,这表明该程序已在 InitializeComponent() 内暂停(但没有提供进一步的线索)。

我编辑了应用程序,在上述代码周围放置了一个 try/catch 块,这使我能够打印以下 MessageBox 输出:

如您所见,这表明应用程序无法找到它需要的 DLL。

我的问题:如果不修改应用程序(也就是说,没有 try/catch 块打印出具体细节),我能否实现这个结果? Visual Studio Attach to Process 功能能否指导我解决缺少 DLL 的具体问题?如果可以,怎么做?

如果启用它们,可以从融合日志中找到此信息。融合日志有助于诊断程序集加载是否因缺少依赖项而失败。

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

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