0

我目前正在处理的项目是表单设计器(Silverlight 应用程序),其中用户可以将控件从工具箱拖到工作画布​​上,然后在属性窗格中提供其属性(如 Visual Studio 和 Expression Blend)

我们在测试服务器的 IIS 中部署了我们的应用程序,供 QC 部门对其进行测试。有一个错误,其中在不适用的字段(MinHeight 和 MinWidth)中键入“Auto”没有得到正确处理。我们所做的是继续分配这些无效值,然后捕获异常并显示带有异常消息的消息框:

private void SetControlMinWidth(Control control, TextBox setterTextBox, bool isAdvancedControl = false)
{
    try
    {
        double minWidth = !string.IsNullOrEmpty(setterTextBox.Text) ?
               (
                   setterTextBox.Text.Trim().ToUpper() == "AUTO" ? double.NaN : Convert.ToDouble(setterTextBox.Text)
               ) : control.MinWidth;

        control.MinWidth = minWidth;
    }
    catch (Exception ex)
    {
        CustomMessageBox.Show(ex.Message.ToString());
    }
}

正在传递的异常是 ArgumentException,其默认消息是“值不在预期范围内”。部署后,开发人员进行了一些测试,异常处理按预期工作。令人惊讶的是,QC 测试人员看到的消息不是 ArgumentException 的默认消息,而是

[Arg_ArgumentException]
Arguments: 
Debugging resource strings are unavailable. Often the key and arguments provide sufficient information to diagnose the problem. See http://go.microsoft.com/fwlink/?linkid=106663&Version=4.0.60351.0&File=mscorlib.dll&Key=Arg_ArgumentException

有没有人经历过这种情况,其中开发人员计算机显示正确的异常消息,而 QC 测试人员计算机却没有?请记住,开发人员正在测试已部署的应用程序,而不是从 Visual Studio 运行。

4

1 回答 1

0

我认为调试字符串已从 Silverlight 的最终用户版本中删除。

这篇文章确实解释了它:http: //blogs.msdn.com/b/silverlightws/archive/2008/04/06/getting-full-exceptions-in-silverlight-2-beta-1.aspx

于 2011-09-08T11:11:20.127 回答