0

私が現在取り組んでいるプロジェクトはフォームデザイナー(Silverlightアプリケーション)で、ユーザーはコントロールをツールボックスから作業用キャンバスにドラッグして、プロパティペイン(VisualStudioやExpressionBlendなど)でそのプロパティを指定できます。

QC部門がテストできるように、テストサーバーのIISにアプリをデプロイしました。適用されないフィールド(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テスターのコンピューターは表示しないというこのシナリオを経験した人はいますか?開発者はデプロイされたアプリをテストしており、VisualStudioから実行していないことに注意してください。

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 に答える