我目前正在处理的项目是表单设计器(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,其默认消息“Value不在预期范围内”。部署之后,开发人员进行了一些测试,异常处理按预期工作。令人惊讶的是,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运行。
答案 0 :(得分:0)
我认为从最终用户版本的Silverlight中删除了调试字符串。