调试未在 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
当我第一次 运行 我的 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