次の方法で共有


カスタム サーバー コントロールの例のビルド

更新 : 2007 年 11 月

ここでは、カスタム コントロールの例をコンパイルしてアセンブリを生成し、ASP.NET Web ページでコントロールを使用する方法について説明します。また、ASP.NET Web サイトの App_Code フォルダを使用し、コンパイルせずにコントロールのコードをテストする方法についても説明します。

コントロール アセンブリの作成

カスタム コントロールを作成してアセンブリにコンパイルするには

  1. カスタム コントロールと関連するクラスのためのソース ファイルのフォルダを作成します。

  2. コンパイルするそれぞれの例に対して、適切な言語の拡張子を使用してテキスト ファイルを作成します。

    たとえば、「Web コントロールのレンダリングの例」の MailLink コントロールの C# コードに対しては MailLink.cs というファイルを作成します。

  3. それぞれの例のソース コードを対応するテキスト ファイルにコピーしてファイルを保存します。

  4. ソース コードのフォルダから次のコマンドを実行し、コントロールと関連するクラスをアセンブリにコンパイルします。

    csc /t:library /out:Samples.AspNet.CS.Controls.dll /r:System.dll 
    /r:System.Web.dll /r:System.Design.dll *.cs
    
    vbc /t:library /out:Samples.AspNet.VB.Controls.dll /r:System.dll 
    /r:System.Web.dll /r:System.Design.dll *.vb
    

    /t:library コンパイラ オプションを指定すると、実行可能なアセンブリではなくライブラリが作成されます。/out オプションにはアセンブリの名前を指定し、/r オプションにはこのアセンブリにリンクするアセンブリを列挙します。

    az5kdaz0.alert_note(ja-jp,VS.90).gifメモ :

    コンパイラ コマンドを実行できない場合は、コマンドを実行する前に .NET Framework のインストール パスを Windows の PATH 変数に追加する必要があります。Windows で、[マイ コンピュータ] アイコンを右クリックし、[プロパティ] をクリックします。次に、[詳細設定] タブで、[環境変数] をクリックします。[システム環境変数] の一覧の Path 変数をダブルクリックします。[変数値] ボックスで、既存の値の最後にセミコロン (;) を追加し、各自の .NET Framework のインストール パスを入力します。通常の場合、.NET Framework は Windows のインストール フォルダ (\Microsoft.NET\Framework\versionNumber) にインストールされます。

  5. 新しいソース ファイルをソース コードのフォルダに追加するか、既存のファイルを変更した場合は、必ず手順 4 のコンパイル コマンドを再実行します。

ASP.NET Web サイトの作成

ASP.NET Web サイトを作成するには

  1. インターネット インフォメーション サービス (IIS) などのツールを使用して、ASP.NET Web サイトを作成します。

  2. IIS 仮想ディレクトリの作成と構成の詳細については、「方法 : IIS 5.0 および 6.0 内で仮想ディレクトリを作成および構成する」を参照してください。

    az5kdaz0.alert_note(ja-jp,VS.90).gifメモ :

    IIS を使用する場合は、.NET Framework をインストールする前に IIS をインストールします。

  3. Web サイトのルート フォルダに Bin フォルダを作成します。

  4. 前の手順で作成したアセンブリを Web サイトの Bin フォルダにコピーします。

    az5kdaz0.alert_note(ja-jp,VS.90).gifメモ :

    コントロールのアセンブリを再コンパイルする場合は (前のセクションの最後の手順)、新しいアセンブリを Web サイトの Bin フォルダに再びコピーする必要があります。

  5. Web サイトのルート フォルダに Web.config というテキスト ファイルを作成し、次の XML を Web.config ファイルに追加してからファイルを保存します。

    <?xml version="1.0"?>
    <configuration>
      <system.web>
        <compilation debug="true"/>
        <pages>
          <controls>
            <add tagPrefix="aspSample" 
              namespace="Samples.AspNet.CS.Controls" 
              assembly="Samples.AspNet.CS.Controls" >
            </add>
          </controls>
        </pages>
      </system.web>
    </configuration>
    
    <?xml version="1.0"?>
    <configuration>
      <system.web>
        <compilation debug="true"/>
        <pages>
          <controls>
            <add tagPrefix="aspSample" 
              namespace="Samples.AspNet.VB.Controls" 
              assembly="Samples.AspNet.VB.Controls" >
            </add>
          </controls>
        </pages>
      </system.web>
    </configuration>
    
  6. テストするそれぞれの例に対して、テキスト ファイルに .aspx という拡張子を付けて Web サイトのルート フォルダに追加します。

    たとえば、「Web コントロールのレンダリングの例」の MailLink コントロールのテスト ページに対しては MailLinkTest.aspx というファイルを作成します。

  7. それぞれの例のテスト ページのソース コードを対応する .aspx ファイルにコピーしてファイルを保存します。

  8. Web ブラウザで .aspx ページを要求します。

    たとえば、Web サイトの名前が ServerControls で、そこに MailLinkTest.aspx というページがある場合、ブラウザのアドレス バーに次の URL を入力します。

    https://localhost/ServerControls/MailLinkTest.aspx
    

テストするコントロールに App_Code フォルダを使用する

ASP.NET 2.0 の動的コンパイル機能を使用して、手動でコンパイルしてアセンブリを生成せずにコントロールをテストすることもできます。

App_Code フォルダにコントロールを格納するには

  1. Web サイトのルート フォルダに App_Code フォルダを作成します。

  2. コントロールと関連するクラスのソース ファイルを App_Code フォルダにコピーします。

  3. 以前にこのコントロールのアセンブリを Bin フォルダに追加している場合は削除します。

    az5kdaz0.alert_note(ja-jp,VS.90).gifメモ :

    コントロールをプリコンパイルして生成したアセンブリを Bin フォルダに格納するか、コントロールのソース ファイルを App_Code フォルダに格納します。両方のフォルダにコントロールを追加すると、ページ パーサーはページのコントロールへの参照を解決できないためにエラーを生成します。

  4. Web.config ファイルの controls セクションのエントリを強調表示された次のエントリに変更します。このエントリは、コントロールの名前空間をタグ プリフィックスにマップします。

    <controls>
      <add tagPrefix="aspSample"     namespace="Samples.AspNet.CS.Controls">..</add>
    </controls>
    
    <controls>
      <add tagPrefix="aspSample"     namespace="Samples.AspNet.VB.Controls">..</add>
    </controls>
    

    詳細については、「@ Register」を参照してください。

  5. Web ブラウザで .aspx ページを要求します。

QuickContacts クラスと ContactCollectionEditor クラスのソース ファイルを Web コントロールのコレクション プロパティの例 から App_Code フォルダに配置する場合は、Web.config ファイルの compilation セクションに System.Design アセンブリへの参照を追加する必要があります。この参照には、System.Design アセンブリの完全修飾名が必要です。完全修飾名に必要な情報は、次の構文を使用して Windows Software Development Kit (SDK) に付属する グローバル アセンブリ キャッシュ ツール (Gacutil.exe) を実行して取得します。

gacutil /l System.Design
az5kdaz0.alert_note(ja-jp,VS.90).gifメモ :

コマンドラインから グローバル アセンブリ キャッシュ ツール (Gacutil.exe) を実行するには、Windows の PATH 環境変数に各自の .NET Framework のインストール パスを追加する必要があります。Windows で、[マイ コンピュータ] アイコンを右クリックし、[プロパティ] をクリックします。次に、[詳細設定] タブで、[環境変数] をクリックします。[システム環境変数] の一覧の Path 変数をダブルクリックします。[変数値] ボックスで、既存の値の最後にセミコロン (;) を追加し、各自の .NET Framework のインストール パスを入力します。通常の場合、.NET Framework は Windows のインストール フォルダ (\Microsoft.NET\Framework\versionNumber) にインストールされます。

Web.config ファイルの compilation セクションに追加するタグは、次の例の強調表示されたテキストのようになります。ただし、Version 属性と PublicKeyToken 属性の値は、Gacutil.exe ツールが返す値で置き換える必要があります。

<compilation >
  <assemblies>    <add assembly="System.Design, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />    </assemblies>
</compilation>
az5kdaz0.alert_note(ja-jp,VS.90).gifメモ :

統合開発環境でデザイナを使用すると、Web.config ファイルにアセンブリの参照を簡単に追加する方法が提供される場合があります。たとえば、Visual Studio 2005 のソリューション エクスプローラで Web サイトの名前を右クリックし、ショートカット メニューの [参照の追加] をクリックして表示されるダイアログ ボックスを使用すると、追加するアセンブリを選択できます。アセンブリを選択すると、関連するエントリが Web.config ファイルに自動的に追加されます。

参照

処理手順

チュートリアル : カスタム サーバー コントロールの開発と使用

その他の技術情報

ASP.NET カスタム サーバー コントロールの開発