다음을 통해 공유


compilation 요소(ASP.NET 설정 스키마)

업데이트: 2007년 11월

ASP.NET에서 응용 프로그램을 컴파일하는 데 사용하는 모든 컴파일 설정을 구성합니다.

<configuration> 요소
  system.web 요소(ASP.NET 설정 스키마)
    compilation 요소(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]"
   assemblyPostProcessorType="assembly post processor, assembly"
>
   <assemblies>...</assemblies> 
   <buildproviders>...</buildproviders>
   <codeSubDirectories>...</codeSubDirectories>
   <compilers>...</compilers>
   <expressionBuilders>...</expressionBuilders>
</compilation>

특성 및 요소

다음 단원에서는 특성, 자식 요소 및 부모 요소에 대해 설명합니다.

특성

특성

설명

assemblyPostProcessorType

선택적 String 특성입니다.

어셈블리 사후 프로세서를 참조하여 어셈블리에 대한 사후 처리 컴파일 단계를 지정합니다. "어셈블리 사후 프로세서, 어셈블리" 형식을 사용합니다. 어셈블리 사후 프로세서는 IAssemblyPostProcessor 인터페이스를 구현해야 합니다. 이 사후 처리 방법을 사용하면 컴파일 시 디버깅이 수행되며 이는 배포 모드를 지정할 때 재정의할 수 있습니다.

이 특성은 .NET Framework 버전 2.0에서 새로 도입되었습니다.

기본값은 빈 문자열입니다.

batch

선택적 Boolean 특성입니다.

일괄 처리 지원 여부를 나타냅니다.

True이면 파일에 처음 액세스할 때 필요한 컴파일로 인해 지연이 발생하지 않습니다. 이 특성을 True로 설정하면 ASP.NET에서는 컴파일되지 않은 모든 파일을 일괄적으로 미리 컴파일하므로 파일을 처음 컴파일하는 경우에는 지연 시간이 훨씬 길어집니다. 그러나 초기 지연 이후에는 다음에 파일에 액세스할 때 컴파일 지연이 발생하지 않습니다.

기본값은 True입니다.

batchTimeout

선택적 TimeSpan 특성입니다.

일괄 처리 컴파일의 시간 초과 기간(초)을 지정합니다. 컴파일이 시간 초과 기간 내에 완료되지 못하면 컴파일러는 현재 페이지에 대한 단일 컴파일 모드로 전환합니다.

기본값은 "900"초(15분)입니다.

debug

선택적 Boolean 특성입니다.

정품(retail) 이진 파일 대신 디버그 이진 파일을 컴파일할지 여부를 지정합니다.

기본값은 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 특성입니다.

응용 프로그램이 다시 시작하기 전에 발생할 수 있는 리소스의 동적 재컴파일 수를 지정합니다. 이 특성은 전역 및 응용 프로그램 수준에서 지원되지만 디렉터리 수준에서는 지원되지 않습니다.

참고

ASP.NET에서는 어셈블리가 무효화되었지만 이를 삭제할 수 없을 때마다 NumRecompilesBeforeAppRestart 속성을 증가시킵니다.

기본값은 15입니다.

strict

선택적 Boolean 특성입니다.

Visual Basic strict 컴파일 옵션을 사용할 것인지 여부를 지정합니다.

기본값은 False입니다.

tempDirectory

선택적 String 특성입니다.

컴파일하는 동안 임시 파일을 저장할 디렉터리를 지정합니다.

기본값은 빈 문자열("")입니다.

빈 문자열을 사용하면 현재 프로세스에 필요한 액세스 권한이 있는 경우 파일이 %FrameworkInstallLocation%\ Temporary ASP.NET Files 디렉터리에 저장됩니다.

신뢰 권한이 높은 프로세스만 %FrameworkInstallLocation%\ Temporary ASP.NET Files에 액세스할 수 있습니다.

urlLinePragmas

선택적 Boolean 특성입니다.

컴파일러에서 실제 경로 대신 URL을 사용할 것인지 여부를 지정합니다.

기본값은 False입니다.

자식 요소

요소

설명

assemblies

ASP.NET 리소스를 컴파일하는 동안 사용할 어셈블리 이름의 컬렉션을 정의합니다.

buildproviders

사용자 지정 리소스 파일을 컴파일하는 데 사용되는 빌드 공급자의 컬렉션을 정의합니다.

이 요소는 .NET Framework 버전 2.0에서 새로 도입되었습니다.

codeSubDirectories

런타임에 컴파일되는 파일이 포함된 하위 디렉터리의 정렬된 컬렉션을 정의합니다.

이 요소는 .NET Framework 버전 2.0에서 새로 도입되었습니다.

compilers

컴파일러 옵션의 컬렉션을 정의합니다.

참고

.NET Framework 버전 2.0에서는 이 요소 대신에 system.codeDom 섹션의 compilers 요소를 사용합니다. 그러나 compilation 요소의 compilers 자식 요소를 계속 사용할 수 있으며 이를 통해 system.codedom 섹션에 있는 compilers 요소가 재정의됩니다.

expressionBuilders

컴파일하는 동안 사용할 리소스 문자열의 컬렉션을 정의합니다. 리소스 문자열은 접두사와 식 작성기를 연결합니다.

이 요소는 .NET Framework 버전 2.0에서 새로 도입되었습니다.

부모 요소

요소

설명

configuration

공용 언어 런타임 및 .NET Framework 응용 프로그램에서 사용하는 모든 구성 파일의 필수 루트 요소를 지정합니다.

system.web

구성 파일에서 ASP.NET 구성 설정에 대한 루트 요소를 지정하며, ASP.NET 웹 응용 프로그램 동작을 구성하는 구성 요소를 포함합니다.

설명

compilation 요소는 ASP.NET에서 응용 프로그램을 컴파일하는 데 사용하는 모든 컴파일 설정을 구성합니다.

.NET Framework 버전 2.0에서는 compilation 요소의 compilers 자식 요소 대신 system.codeDom 섹션의 compilers 요소를 사용합니다. 그러나 compilation 요소의 compilers 자식 요소를 계속 사용할 수 있으며 이를 통해 system.codedom 섹션에 있는 compilers 요소가 재정의됩니다.

기본 구성

다음의 기본 compilation 요소는 Machine.config 파일 또는 루트 Web.config 파일에 명시적으로 구성되어 있지 않습니다. 그러나 이 요소는 응용 프로그램에서 반환하는 기본 구성입니다. 루트 Web.config 파일의 assemblies, buildProvidersexpressionBuilders 컬렉션에 항목이 추가됩니다.

<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 버전 1.1의 Machine.config 파일에 구성되어 있습니다. .NET Framework 버전 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"
         debug="true"
         numRecompilesBeforeAppRestart="15">
         <compilers>
            <compiler 
               language="VB;VBScript"
               extension=".cls"
               type="Microsoft.VisualBasic.VBCodeProvider,system,     
                     Version=1.0.5000.0, Culture=neutral, 
                     PublicKeyToken=b77a5c561934e089"/>
            <compiler 
               language="C#;Csharp"
               extension=".cs"
               type="Microsoft.CSharp.CSharpCodeProvider,system, 
                     Version=1.0.5000.0,  Culture=neutral, 
                     PublicKeyToken=b77a5c561934e089"/>
         </compilers>
         <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 IIS(인터넷 정보 서비스) 5.0, 5.1 또는 6.0

.NET Framework 1.0, 1.1, 2.0

Visual Studio 2003 또는 Visual Studio 2005

참고 항목

작업

방법: 위치 설정을 사용하여 특정 디렉터리 구성

방법: ASP.NET 구성 설정 잠금

개념

ASP.NET 컴파일 개요

ASP.NET 웹 페이지 구문 개요

ASP.NET 구성 파일 계층 구조 및 상속

ASP.NET 구성 보안

ASP.NET 구성 시나리오

참조

system.web 요소(ASP.NET 설정 스키마)

compilation 요소에 대한 assemblies 요소(ASP.NET 설정 스키마)

compilation 요소에 대한 buildProviders 요소(ASP.NET 설정 스키마)

compilation 요소에 대한 codeSubDirectories 요소(ASP.NET 설정 스키마)

compilation 요소에 대한 compilers 요소(ASP.NET 설정 스키마)

compilation 요소에 대한 expressionBuilders 요소(ASP.NET 설정 스키마)

configuration 요소(일반 설정 스키마)

System.Configuration

System.Web.Configuration

CompilationSection

Compilation

기타 리소스

일반 구성 설정(ASP.NET)

ASP.NET 구성 설정

ASP.NET 웹 사이트 관리

ASP.NET 구성 파일

ASP.NET 구성 API