アプリケーションの変更と再発行

このレッスンでは、LightSwitch アプリケーションのバグを修正して、再発行する方法について学習します。

アプリケーションのデバッグ

前のレッスン「アプリケーションの実行」では、アプリケーションをインストールしてテストする方法を示しました。そのレッスンでは、[ContactList] 画面の [検索] ボタンにあるバグを特定しました。[連絡先] エンティティにレコードがない場合、ボタンをクリックすると、エラーまたは例外が発生します。このレッスンは、エラーを見つけるためにアプリケーションをデバッグする方法、および例外をキャッチして問題を説明するメッセージを表示するために Button_Execute() メソッドにコードを追加し、エラーを修正する方法を示します。

エラーを修復するには

  1. ソリューション エクスプローラーで、[画面] の下にある [ContactList] ノードを選択します。

  2. [プロジェクト] メニューの [画面コードの表示] をクリックします。

    コード エディターが表示され、Find_Execute() メソッドが表示されます。

  3. Application.ShowSearchCustomer(Contacts.SelectedItem.ContactName) を含むコード行を選択し、[デバッグ] メニューの [ブレークポイントの設定/解除] をクリックします。

    ブレークポイントの設定

    コードの行がハイライト表示され、左マージンに赤いブレークポイントのグリフが表示されます。

  4. F5 キーを押してアプリケーションを実行し、[ナビゲーション メニュー][連絡先] をクリックして、[連絡先] 画面を開きます。

  5. ツール バーの [検索] ボタンをクリックします。

    コード エディターが表示され、ブレークポイントが強調表示されます。

  6. [デバッグ] メニューの [ステップ イン] をクリックします。

    [!メモ]

    自動的なステップ オーバーに関するメッセージのダイアログ ボックスが表示される場合があります。[いいえ] をクリックして続行します。

    "NullReferenceException はユーザー コードで未処理でした" というメッセージが表示されます。

  7. [デバッグ] メニューの [デバッグの停止] をクリックします。

  8. Find_Execute() メソッドの既存のコードを次のコードで置き換えます。

    Try
        Application.ShowSearchCustomer(Contacts.SelectedItem.ContactName)
    Catch ex As Exception 
        ShowMessageBox("Please select a contact to find")
    End Try
    
    try
    {
        Application.ShowSearchCustomer(Contacts.SelectedItem.ContactName);
    }
    catch (Exception ex)
    {
        this.ShowMessageBox("No contacts exist to be found");
    }
    

    例外が発生した場合にこのコードはメッセージを表示します。

  9. Application.ShowSearchCustomer(Contacts.SelectedItem.ContactName) を含むコード行を選択し、[デバッグ] メニューの [ブレークポイントの設定/解除] をクリックします。

  10. F5 キーを押してアプリケーションを再度実行し、[ナビゲーション メニュー][連絡先] メニューをクリックして、[連絡先] 画面を開きます。

  11. ツール バーの [検索] ボタンをクリックします。

    コード エディターが表示され、ブレークポイントが強調表示されます。

  12. [デバッグ] メニューの [ステップ イン] をクリックします。

    例外メッセージは表示されず、強調表示がコードの次の行に移動します。

  13. [デバッグ] メニューの [ステップ イン] を再度クリックします。

    強調表示は Catch ブロック内のコード行に移動します。

  14. [デバッグ] メニューの [ステップ イン] をもう一度クリックします。

    アプリケーション ウィンドウが表示され、"検索する連絡先を選択してください" というメッセージが表示されます。

  15. [OK] をクリックしてメッセージ ボックスを閉じます。

    コード エディターが表示され、End Try コード (C# の右中かっこ (})) が強調表示されます。

  16. F5 キーを押してアプリケーションの実行を再開し、[閉じる] ボタンをクリックします。

アプリケーションを再発行してテストするには

  1. ソリューション エクスプローラー[プロパティ] ノードをクリックします。

  2. アプリケーション デザイナー[全般] タブで、[アプリケーション バージョン] フィールドを選択し、2 番目のテキスト ボックスに「1001」と入力します。

  3. [ビルド] メニューの [構成マネージャー] をクリックします。

    [構成マネージャー] ダイアログ ボックスが表示されます。

  4. [アクティブ ソリューション構成] の一覧で、[リリース] を選択し、[閉じる] をクリックします。

  5. [ビルド] メニューの [My First Application の発行] を選択します。

    LightSwitch 発行アプリケーション ウィザードが表示されます。

  6. 左側のウィンドウで、[データベースの構成] をクリックします。

    [データベースの構成] ページが表示されます。

  7. [SQL データベース スクリプトを生成する] チェック ボックスをオフにします。

  8. 左側のウィンドウで、[認証] をクリックします。

    [アプリケーション管理者] ページが表示されます。

  9. [認証の構成の指定] ページの [認証情報をアプリケーションと共に配置しますか] セクションで、[いいえ、認証情報は既に配置されています] を選択します。

    [!メモ]

    認証情報は、アプリケーションを最初に発行する場合にのみ配置します。同じ認証情報を再度配置しようとすると、発行は失敗し、"このユーザー名は既に使用中です" というメッセージが表示されます。

  10. [発行] をクリックして、アプリケーションを再発行します。

    "発行は成功しました" というメッセージがステータス バーに表示されるまで待ちます。

  11. [スタート] メニューで、[Northwind アプリケーション] をクリックしてアプリケーションを開きます。

    メッセージが表示され、アプリケーションが新しいバージョンに自動的に更新されます。インストールが完了すると、Northwind アプリケーションが表示されます。

  12. [ナビゲーション メニュー][連絡先] をクリックして、[連絡先] 画面を開きます。

  13. ツール バーの [検索] ボタンをクリックし、先ほど追加した "検索する連絡先を選択してください" というメッセージが表示されることを確認します。

  14. アプリケーションを終了するには、[閉じる] ボタンをクリックします。

よく見る

このレッスンでは、アプリケーションをデバッグ、更新、および再発行する方法について示しました。最初のステップは、Find_Execute() メソッドにブレークポイントを設定することでした。アプリケーションを実行したときに、コード行の手前にあるブレークポイントで停止し、コードにステップ インしてその行だけを実行することができました。

そのとき、コードは実行を停止し、"Null 参照の例外" というメッセージを表示しました。Null Reference Exception は、存在しないオブジェクトをコードが参照するときに発生します。この場合、オブジェクトは ContactName の SelectedItem です。

このレッスンは続いて、Try…Catch ブロックを追加することによってコードを修正する方法を示しました。Try…Catch ブロックでは、Try ブロックのコードが最初に実行されます。例外が発生した場合は、Catch ブロック内のコードが実行されます。この場合は、ユーザーにメッセージ ボックスが表示されます。

レッスンでは、バグを修正する方法を示した後、コードを実行して、例外が処理されたこと、また Catch ブロック内のコードが実行され、メッセージ ボックスが表示されたことを確認する方法を示しました。例外が発生する可能性のあるすべての場所に、Try…Catch ブロックをコードに追加することをお勧めします。

最後に、レッスンでは、アプリケーション バージョンの番号を更新する方法を示し、アプリケーションを再発行しました。アプリケーションをインストールしたときに、インストールの許可は求められませんでした。アクセス許可はアプリケーションを最初にインストールしたときに与えられ、更新では必要ありません。

次の手順

次のレッスンでは、アプリケーションで管理機能を使用する方法について学習します。

次のレッスン: アプリケーション管理者としての実行

参照

概念

方法: 2 層アプリケーションを配置する

その他の技術情報

アプリケーションの配布

デバッグ: エラーの検出と修正

配置: アプリケーションの配布と保守