我创建了许多用于各种 MS 系统的 Silverlight 应用程序,从 CRM 2011 到 SharePoint。
应用程序并不完美,我会第一个承认这一点,有时会出错。我所有的应用程序都已经显示出了问题:
private void Application_UnhandledException(object sender, ApplicationUnhandledExceptionEventArgs e)
{
(...)
UIDispatcher.Invoke(() => ARP.DynamicsCRM2011.Silverlight.GlobalHelper.Controls.MessageWindow.ShowMessage(e.ExceptionObject.Message));
(...)
}
但是,最终用户几乎总是不会安装 Silverlight 开发人员 SDK,并且随后只会收到一般的“调试资源字符串不可用”消息。
该消息通常会包含一些非常基本的异常形式,但这并不理想。我也知道我从错误中丢失了正确的堆栈跟踪(这当然很容易修复)。
我正在考虑重写该异常处理代码以显示通用的“出现问题,请重试消息”,以及一个额外的“显示日志”按钮以显示所有异常信息以及堆栈跟踪。
然而,我的问题是......我应该如何处理那些丢失的资源字符串?如果出现问题,我希望获得尽可能多的信息,但我不能要求我的用户都安装开发者 SDK。
在这种情况下,最好的行动方案是什么?