compilation 要素 (ASP.NET 設定スキーマ)

[このドキュメントはプレビューのみを目的としており、以降のリリースで変更される可能性があります。プレースホルダーとして空白のトピックが含まれています。]

ASP.NET でアプリケーションのコンパイルに使用されるすべてのコンパイル設定値を構成します。

<compilation 
   debug="[true|false]"
   batch="[true|false]"
   batchTimeout="number of seconds"
   defaultLanguage="language" 
   explicit="[true|false]" 
   maxBatchSize="maximim number of pages"
   maxBatchGeneratedFileSize="maximum combined size"
   numRecompilesBeforeAppRestart="number"
   strict="[true|false]" 
   tempDirectory="temporary files directory"
   urlLinePragmas="[true|false]"
   optimizeCompilations="[true|false]"
   targetFramework="2.0|3.0|3.5|4.0"
   assemblyPostProcessorType="assembly post processor, assembly"
>
   <assemblies>...</assemblies> 
   <buildProviders>...</buildProviders>
   <folderLevelBuildProviders>...</folderLevelBuildProviders>
   <codeSubDirectories>...</codeSubDirectories>
   <compilers>...</compilers>
   <expressionBuilders>...</expressionBuilders>
</compilation>

属性および要素

以降のセクションでは、属性、子要素、および親要素について説明します。

属性

属性

Description

assemblyPostProcessorType

省略可能な String 型の属性です。

アセンブリのポストプロセッサを参照することによって、アセンブリのコンパイルの後処理手順を指定します。 "アセンブリのポスト プロセッサ, アセンブリ" の形式を使用します。 アセンブリのポスト プロセッサ は、IAssemblyPostProcessor インターフェイスを実装する必要があります。 この後処理の方法を使用すると、コンパイル時に強制的にデバッグが行われ、配置モードの指定時にオーバーライドできます。

この属性は .NET Framework Version 2.0 で新たに追加されました。

既定値は空の文字列です。

batch

省略可能な Boolean 型の属性です。

バッチ処理がサポートされるかどうかを示します。

True の場合、最初にファイルにアクセスするときに必要なコンパイルにより引き起こされる遅延を除去します。 この属性が True の場合、 ASP.NET はコンパイルされていないすべてのファイルをバッチ モードでプリコンパイルしますが、最初にファイルがコンパイルされるときは長い遅延が発生します。 ただし、この最初の遅延の後、ファイルのその後のアクセスではコンパイルによる遅延が除去されます。

既定値は、True です。

batchTimeout

省略可能な TimeSpan 型の属性です。

バッチ コンパイルのタイムアウトの時間を秒数で指定します。 タイムアウトの時間内にコンパイルを完了できない場合、コンパイラは現在のページの単一コンパイル モードに戻ります。

既定値は "900" (15 分) です。

debug

省略可能な Boolean 型の属性です。

リテール バイナリではなくデバッグ バイナリをコンパイルするかどうかを指定します。

既定値は、False です。

defaultLanguage

省略可能な String 型の属性です。

動的コンパイル ファイルで使用する "C#" や "PERL" などの既定のプログラミング言語を指定します。 言語名は、system.codeDom セクションの compilers 要素を使用して、または (推奨されていませんが) この要素の compilers 子要素を使用して定義します。

既定値は、"vb" です。

explicit

省略可能な Boolean 型の属性です。

Microsoft Visual Basic の explicit コンパイル オプションを設定にするかどうかを指定します。 True の場合、Dim、Private、Public、または ReDim ステートメントを使用してすべての変数を宣言する必要があります。

既定値は、True です。

maxBatchGeneratedFileSize

省略可能な Int32 型の属性です。

バッチ コンパイルごとに生成されるソース ファイルの最大合計サイズ (KB 単位) を指定します。 通常、実際に必要なビットが少ない場合は、膨大なアセンブリをメモリに読み込むのは適切ではありません。 この制限より、アセンブリのサイズが適度な範囲に収まることになるため、システムをオーバーロードせずにアプリケーションがバッチ メカニズムの利点を活かすことができます。 これは、maxBatchSize と同様です。

既定値は、1000 です。

maxBatchSize

省略可能な Int32 型の属性です。

バッチ コンパイルごとのページの最大数を指定します。

既定値は、1000 です。

numRecompilesBeforeAppRestart

省略可能な Int32 型の属性です。

アプリケーションが再起動されるまでに実行できるリソースの動的再コンパイルの数を指定します。 この属性は、グローバル レベルとアプリケーション レベルではサポートされますが、ディレクトリ レベルではサポートされません。

NoteNote
アセンブリが無効になり、削除に失敗する度に、NumRecompilesBeforeAppRestart プロパティが増加します。

既定値は、15 です。

optimizeCompilations

省略可能な Boolean 型の属性です。

最上位のファイルが変更された場合に、動的コンパイルでサイト全体の再コンパイルを実行するかどうかを指定します。 最上位のファイルには、Global.asax ファイルや、Bin フォルダーおよび App_Code フォルダー内のすべてのファイルが含まれます。 True の場合、変更されたファイルのみが再コンパイルされます。

既定値は、False です。

詳細については、「Understanding ASP.NET Dynamic Compilation」を参照してください。

strict

省略可能な Boolean 型の属性です。

Visual Basic の strict コンパイル オプションを有効にするかどうかを指定します。

既定値は、False です。

targetFramework

省略可能な String 型の属性です。

Web サイトが対象とする .NET Framework のバージョンを指定します。

既定値は、Null です。

この属性を省略した場合、対象のバージョンは、Web.config ファイル内の他の設定と、Web サイトが関連付けられている IIS アプリケーション プールによって決定されます。 詳細については、「CompilationSection.TargetFramework」および「.NET Framework Targeting for Web Projects」を参照してください。

tempDirectory

省略可能な String 型の属性です。

コンパイル時に一時ファイル ストレージとして使用するディレクトリを指定します。

既定値は、空の文字列 ("") です。

空の文字列で、現在のプロセスに必須のアクセス許可がある場合、ファイルは %FrameworkInstallLocation%\Temporary ASP.NET Files ディレクトリに格納されます。

高い信頼のアクセス許可があるプロセスのみが %FrameworkInstallLocation%\ Temporary ASP.NET Files にアクセスできます。

urlLinePragmas

省略可能な Boolean 型の属性です。

コンパイラで物理パスではなく URL を使用する必要があるかどうかを指定します。

既定値は、False です。

子要素

要素

Description

assemblies

ASP.NET リソースのコンパイル時に使用されるアセンブリの名前のコレクションを定義します。

buildProviders

カスタム リソース ファイルをコンパイルするために使用されるビルド プロバイダーのコレクションを定義します。 詳細については、BuildProvider クラスを参照してください。

codeSubDirectories

実行時にコンパイルするファイルを含むサブディレクトリの順序付けられたコレクションを定義します。

compilers

コンパイラ オプションのコレクションを定義します。

NoteNote
.NET Framework Version 2.0 以降では、この要素の使用は推奨されません。代わりに system.codeDom セクションの compilers 要素を使用します。ただし、compilation 要素の compilers 子要素はまだ有効で、system.codedom セクションにある compilers 要素をオーバーライドします。

expressionBuilders

コンパイル時に使用するリソース文字列のコレクションを定義します。 リソース文字列は、プレフィックスを式ビルダーに関連付けます。

folderLevelBuildProviders

特定のフォルダーのカスタム リソース ファイルをコンパイルするために使用されるビルド プロバイダーのコレクションを定義します。 ビルド プロバイダーは、ファイルの拡張子に対応付けられ、指定した種類のファイルからコードを生成するために使用されます。 詳細については、FolderLevelBuildProvider クラスを参照してください。

親要素

要素

Description

configuration

共通言語ランタイムおよび .NET Framework ベースのアプリケーションで使用されるすべての構成ファイルで必要なルート要素です。

system.web

構成ファイルの ASP.NET 構成設定にルート要素を指定します。ASP.NET Web アプリケーションの動作を構成する構成要素が含まれています。

解説

compilation 要素は、ASP.NET でアプリケーションのコンパイルに使用されるすべてのコンパイル設定値を構成します。

.NET Framework Version 2.0 では、system.codeDom セクションの compilers 要素のために、compilation 要素の compilers 子要素の使用は推奨されていません。 ただし、compilation 要素の compilers 子要素はまだ有効で、system.codedom セクションにある compilers 要素をオーバーライドします。

既定の構成

次の既定の compilation 要素は、Machine.config ファイルまたはルートの Web.config ファイルでは明示的に構成されません。 ただし、これはアプリケーションにより返される既定の構成です。 項目は、ルートの Web.config ファイルにある assemblies コレクション、buildProviders コレクション、および expressionBuilders コレクションに追加されます。

<compilation 
   tempDirectory="" 
   debug="false" 
   strict="false" 
   explicit="true" 
   batch="true" 
   batchTimeout="900" 
   maxBatchSize="1000" 
   maxBatchGeneratedFileSize="1000" 
   numRecompilesBeforeAppRestart="15" 
   defaultLanguage="vb" 
   urlLinePragmas="false" 
   assemblyPostProcessorType=""
>
   <assemblies>
       <clear />
   </assemblies>
   <buildProviders>
       <clear />
   </buildProviders>
   <expressionBuilders>
       <clear />
   </expressionBuilders>
</compilation>

次の既定の compilation 要素は、.NET Framework Version 1.1 の Machine.config ファイルで構成されます。 .NET Framework Version 1.0 にも、バージョン番号以外は同じ設定が存在します。

<compilation debug="false" explicit="true" defaultLanguage="vb">
   <compilers>
      <compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CSharp.CSharpCodeProvider, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" warningLevel="1"/>
      <compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" type="Microsoft.VisualBasic.VBCodeProvider, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
      <compiler language="js;jscript;javascript" extension=".js" type="Microsoft.JScript.JScriptCodeProvider, Microsoft.JScript, Version=7.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
      <compiler language="VJ#;VJS;VJSharp" extension=".jsl" type="Microsoft.VJSharp.VJSharpCodeProvider, VJSharpCodeProvider, Version=7.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/></compilers>
   <assemblies>
      <add assembly="mscorlib"/>
      <add assembly="System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
      <add assembly="System.Web, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
      <add assembly="System.Data, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
      <add assembly="System.Web.Services, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
      <add assembly="System.Xml, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
      <add assembly="System.Drawing, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
      <add assembly="System.EnterpriseServices, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
      <add assembly="System.Web.Mobile, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
      <add assembly="*"/>
   </assemblies>
</compilation>

使用例

アプリケーションのコンパイル設定を構成する方法を次のコード例に示します。

<configuration>
   <system.web>
      <compilation defaultLanguage="VB"
         targetFramework="4.0"
         debug="true"
         numRecompilesBeforeAppRestart="15">
         <assemblies>
            <add assembly="ADODB"/>
            <add assembly="*"/>
         </assemblies>

         <codeSubDirectories>
           <add directoryName="mySubDir1"/>
           <add directoryName="mySubDir2"/>
           <add directoryName="mySubDir3"/>
         </codeSubDirectories>

         <buildProviders>
            <buildProvider 
               extension=".mafx" type="BuildProviderType, 
                          BuildProviderAssembly"
            />
        </buildProviders>
     </compilation>
   </system.web>
</configuration>

要素情報

構成セクション ハンドラー

CompilationSection

構成メンバー

Compilation

構成できる場所

Machine.config

ルート レベルの Web.config

アプリケーション レベルの Web.config

仮想ディレクトリ レベルまたは物理ディレクトリ レベルの Web.config

要件

Microsoft Internet Information Services (IIS) 5.0、5.1、または 6.0

.NET Framework 1.0、1.1、2.0

Visual Studio 2003 または Visual Studio 2005

参照

処理手順

How to: Configure Specific Folders Using Location Settings

How to: Lock ASP.NET Configuration Settings

Reference

system.web 要素 (ASP.NET 設定スキーマ)

compilation の assemblies 要素 (ASP.NET 設定スキーマ)

compilation の buildProviders 要素 (ASP.NET 設定スキーマ)

compilation の codeSubDirectories 要素 (ASP.NET 設定スキーマ)

compilation の compilers 要素 (ASP.NET 設定スキーマ)

コンパイルに使用する expressionBuilders 要素 (ASP.NET 設定スキーマ)

configuration 要素 (全般設定スキーマ)

System.Configuration

System.Web.Configuration

CompilationSection

Compilation

概念

ASP.NET Compilation Model

ASP.NET Web Page Syntax Overview

ASP.NET Configuration File Hierarchy

Securing Configuration

Configuration Inheritance

.NET Framework Targeting for Web Projects

その他の技術情報

全般構成設定 (ASP.NET)

ASP.NET 構成設定

Configuring ASP.NET Applications

ASP.NET Configuration Files

ASP.NET Configuration API