次の方法で共有


Web アプリケーション プロジェクトのコンパイル

更新 : 2007 年 11 月

Web アプリケーション プロジェクトは、Web サイト プロジェクトに代わるプロジェクトとして Microsoft Visual Studio 2005 で導入されました。この Web アプリケーション プロジェクト モデルは、Visual Studio .NET 2003 Web プロジェクト モデルに基づいています。これは、Visual Studio .NET 2003 Web プロジェクトから最新バージョンの Visual Studio への変換処理を簡略化し、コード変更を最小限に抑える目的で作成されました。プロジェクトのコード ファイルはすべて、Microsoft Build Engine (MSBuild) により、単一のアセンブリにプリコンパイルされます。ASP.NET Web ページ (.aspx) とユーザー コントロール (.ascx) は、ASP.NET コンパイラにより、サーバー上で動的にコンパイルされます。

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

Visual Studio または Visual Web Developer Express Edition を使用して、ASP.NET Web アプリケーションを作成できます。

コンパイル モデル

Web アプリケーション プロジェクトのコンパイル モデルは、Visual Studio .NET 2003 のコンパイル モデルと似ています。プロジェクトに含まれるすべてのコード ファイル (スタンドアロン ファイル、分離コード ファイル、およびクラス ファイル) は、単一のアセンブリにプリコンパイルされます。既定では、このアセンブリは Bin フォルダ内でビルドおよび保持されます。このコンパイル モデルにより単一のアセンブリが作成されるため、アセンブリ名、アセンブリのバージョンなどの属性を指定できます。また、出力されるアセンブリの場所を指定することもできます。

Web サイト プロジェクトがプロジェクト フォルダで定義されるのに対し、Web アプリケーション プロジェクトはプロジェクト ファイルで定義されます。プロジェクト ファイルには、プロジェクトを形成するファイルの他に、アセンブリ参照やその他のプロジェクトのメタデータ設定が含まれています。プロジェクト フォルダに含まれるファイルであっても、プロジェクト ファイルの中で定義されていないものは、Web アプリケーション プロジェクトの一部としてコンパイルされません。Visual Studio または Visual Web Developer Express Edition でプロジェクト設定に追加や変更が加えられると、プロジェクトごとに生成されるプロジェクト ファイル (*.proj) にその内容が反映されます。

ページを実行し、デバッグするには、Web アプリケーション プロジェクト全体をコンパイルする必要があります。Visual Studio および Visual Web Developer Express Edition では、インクリメンタル ビルド モデルが採用されており、変更したファイルのみがビルドされるので、Web アプリケーション プロジェクト全体を短時間でビルドできます。

詳細については、「Web アプリケーション プロジェクトの概要」を参照してください。

クラス ファイルのプリコンパイル

Web アプリケーション プロジェクトは、MSBuild を使用してクラス ファイルをプリコンパイルします。これらのクラス ファイルは、単一のアセンブリにコンパイルされます。既定では、それらは Bin フォルダに格納されます。MSBuild の標準の拡張ルールを使用して、コンパイル プロセスの拡張およびカスタマイズを行うことができます。詳細については、「MSBuild の概要」を参照してください。

次の表に、単一のアセンブリにコンパイルされる Web アプリケーション プロジェクト クラス ファイルを示します。

クラス ファイルの種類

説明

スタンドアロン

作成後、Bin フォルダに追加可能なクラス ファイル。

分離コード

コンテンツ ファイルと直接関連するユーザー定義のコード。

デザイナ

自動生成コード。.designer ファイルは変更しないでください。

コンパイル オプションのカスタマイズ

たとえば、[プロジェクト デザイナ] ウィンドウの [アプリケーション] プロパティ ページでは、出力アセンブリ名、バージョン、その他の詳細を指定できます。[プロジェクト デザイナ] ウィンドウの [ビルド] ページでは、プロジェクトのビルド構成を指定できます。たとえば、エラーの処理方法やアセンブリ出力の詳細を指定できます。また、[ビルド イベント] プロパティ ページで値を設定すると、コンパイル時のビルド前およびビルド後のステップを追加できます。プロパティ ページの詳細については、「プロジェクトに関するユーザー インターフェイス要素」を参照してください。

[ビルド アクション] プロパティの設定

既定では、[ビルド アクション] プロパティを [コンパイル] に設定した Web アプリケーション プロジェクトのクラス ファイルだけが MSBuild によってコンパイルされます。ただし、Web アプリケーション プロジェクトの App_Code フォルダ内のクラス ファイルは、ASP.NET コンパイラによってコンパイルされます。これは、それらのビルド アクションが明示的に [コンパイル] に設定されていない場合でも同様です。

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

Visual Studio 2005 の Web サイト プロジェクトには、App_Code フォルダが含まれています。このフォルダは、通常 Web アプリケーション プロジェクトには含まれません。App_Code フォルダの詳細については、「ASP.NET Web サイト内の共有コード フォルダ」を参照してください。

動的なコンパイル

プロジェクトのコード ファイルはすべて、MSBuild により単一のアセンブリにプリコンパイルされます。これに対して、Web アプリケーション プロジェクトの ASP.NET Web ページ (.aspx) やユーザー コントロール (.ascx) は、ASP.NET コンパイラによりサーバー上で動的にコンパイルされます。Web アプリケーション プロジェクトの Web ページやユーザー コントロールは、CodeBehind 属性と Inherits 属性を @ Page ディレクティブまたは @ Control ディレクティブで使用できます。CodeBehind 属性は、使用する分離コード ファイルを参照します。Inherits 属性は、分離コード ファイル内の名前空間とクラスを指します。

Web アプリケーション プロジェクトでは、コンパイルおよび配置の完了したサイト内の ASP.NET Web ページに対して、限定的な変更を加えることができます。たとえば、コントロールの配列、色、フォント、およびその他のページの表示形式を変更できます。サイトが初めて実行されると、ASP.NET により、マークアップからの出力を生成するために追加のコンパイルが実行されます。

分離コード ファイルが保護されているか、公開されている限り、分離コード ファイルでコントロールを静的に宣言できます。.aspx ページでは分離コード ファイルが継承されるため、この宣言が使用され、新しいコントロールは宣言されません。コントロール宣言を分離コード ファイルに移すのは、次のような場合です。

  • コントロールの型を標準型から派生させる必要がある場合。

  • コントロールのスコープを既定のスコープ以外に変更する場合。スコープは、アクセシビリティ レベルを表します。たとえば、public、private、internal、protected、protected internal などです。

  • コントロール宣言にメタデータ属性を追加する必要がある場合。

  • コントロール宣言に XML コード コメントを書き込む必要がある場合。

コントロールを追加する方法の詳細については、「方法 : ASP.NET Web ページにコントロールをプログラムによって追加する」を参照してください。

配置

すべてのクラス ファイルが単一のアセンブリにコンパイルされるので、配置する必要があるのは、このアセンブリと、.aspx ファイルおよび .ascx ファイル、その他の静的コンテンツ ファイルだけです。このモデルでは、.aspx ファイルは、ブラウザから要求がない限りコンパイルされません。

ただし、.aspx ファイルをコンパイルし、配置対象として単一のアセンブリに含めることもできます。これには、Visual Studio のダウンロード可能なアドインである Web 配置プロジェクトを使用します。このアドインのダウンロード方法については、ASP.NET Developer Center Web サイトの「Visual Studio 2005 Web Deployment Projects」を参照してください。Web アプリケーション プロジェクトの配置方法の詳細については、「方法 : Web アプリケーション プロジェクトを発行する」を参照してください。

参照

概念

MSBuild の概要

Web アプリケーション プロジェクトの概要

ASP.NET Web サイト内の共有コード フォルダ

ASP.NET Web ページの概要

参照

[ビルド イベント] ページ (プロジェクト デザイナ) (C#)

[ビルド] ページ (プロジェクト デザイナ) (C#)

@ Page

その他の技術情報

MSBuild の概念