Elemento compilation (Esquema de configuración de ASP.NET)

Configura todas las opciones de compilación que utiliza ASP.NET para compilar aplicaciones.

<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>

Atributos y elementos

En las secciones siguientes se describen los atributos, los elementos secundarios y los elementos primarios.

Atributos

Atributo

Descripción

assemblyPostProcessorType

Atributo String opcional.

Especifica un paso posterior al proceso de compilación de un ensamblado haciendo referencia a un postprocesador de ensamblados. Utilice el formato "postprocesador de ensamblados, ensamblado". El postprocesador de ensamblados debe implementar la interfaz IAssemblyPostProcessor. Si se usa este método de procesamiento posterior, la compilación debe depurarse, lo que puede invalidarse si se especifica el modo de implementación.

Este atributo es nuevo en la versión 2.0 de .NET Framework.

El valor predeterminado es una cadena vacía.

batch

Atributo Boolean opcional.

Indica si se admite el procesamiento por lotes.

Si su valor es True, elimina la demora originada por la compilación que se requiere cuando se obtiene acceso por primera vez a un archivo. Cuando este atributo se establece en True, ASP.NET precompila todos los archivos no compilados en un modo de procesamiento por lotes, lo que origina una demora aún mayor la primera vez que se compilan los archivos. Sin embargo, tras esta demora inicial, ya no se genera ninguna demora de compilación en los accesos posteriores al archivo.

El valor predeterminado es True.

batchTimeout

Atributo TimeSpan opcional.

Especifica el período de espera, en segundos, para la compilación por lotes. Si la compilación no puede completarse en el tiempo especificado, el compilador revierte al modo de compilación simple para la página actual.

El valor predeterminado es 900 (15 minutos).

debug

Atributo Boolean opcional.

Especifica si se deben compilar los archivos binarios para depuración en lugar de los archivos binarios para distribución.

El tipo predeterminado es False.

defaultLanguage

Atributo String opcional.

Especifica el lenguaje de programación predeterminado, como "C#" o "PERL", que se va a utilizar en los archivos de compilación dinámica. Los nombres del lenguaje se definen con el elemento compilers de la sección system.codeDom o con el elemento secundario compilers de este elemento (desusado).

El tipo predeterminado es "vb".

explicit

Atributo Boolean opcional.

Especifica si se va a configurar la opción de compilación explicit de Microsoft Visual Basic. Si su valor es True, todas las variables deben declararse mediante una instrucción Dim, Private, Public o ReDim.

El valor predeterminado es True.

maxBatchGeneratedFileSize

Atributo Int32 opcional.

Especifica el tamaño máximo total (en KB) de los archivos de código fuente generados en cada compilación por lotes. En general, no es una situación idónea cargar un ensamblado enorme en la memoria cuando en realidad se necesita un número menor de bits. Este límite ayuda a asegurar que el tamaño de los ensamblados sea razonable para que la aplicación pueda beneficiarse del mecanismo de compilación por lotes sin sobrecargar el sistema. Este límite es similar a maxBatchSize.

El tipo predeterminado es 1000.

maxBatchSize

Atributo Int32 opcional.

Especifica el número máximo de páginas por cada compilación por lotes.

El tipo predeterminado es 1000.

numRecompilesBeforeAppRestart

Atributo Int32 opcional.

Especifica el número de recompilaciones dinámicas de los recursos que pueden producirse antes de que se reinicie la aplicación. Este atributo puede utilizarse de forma global y en las aplicaciones, pero no en los directorios.

NotaNota
ASP.NET aumenta la propiedad NumRecompilesBeforeAppRestart cada vez que se invalida un ensamblado y no se puede eliminar.

El tipo predeterminado es 15.

optimizeCompilations

Atributo Boolean opcional.

Especifica si la compilación dinámica volverá a compilar un sitio completo si se cambia un archivo de nivel superior. Entre los archivos de nivel superior se encuentran el archivo Global.asax y todos los archivos de las carpetas Bin y App_Code. Si es True, solo se vuelven a compilar los archivos que han cambiado.

El tipo predeterminado es False.

Para obtener más información, vea Descripción de la compilación dinámica de ASP.NET.

strict

Atributo Boolean opcional.

Especifica si se debe habilitar la opción de compilación strict de Visual Basic.

El tipo predeterminado es False.

targetFramework

Atributo String opcional.

Especifica la versión de .NET Framework de destino del sitio web.

El tipo predeterminado es Null.

Si se omite este atributo, la versión de destino la determinan otros valores del archivo Web.config y el grupo de aplicaciones IIS al que está asociado el sitio web. Para obtener más información, vea CompilationSection.TargetFramework y Varias versiones de .NET Framework de destino para proyectos web ASP.NET.

tempDirectory

Atributo String opcional.

Especifica el directorio que se usará para almacenar archivos temporales durante la compilación.

El valor predeterminado es una cadena vacía ("").

Si es una cadena vacía y si el proceso actual tiene los permisos de acceso necesarios, los archivos se almacenan en el directorio %ubicaciónDeInstalaciónDeFramework%\Temporary ASP.NET Files.

Tenga en cuenta que sólo los procesos con permisos de alta confianza pueden obtener acceso a %ubicaciónDeInstalaciónDeFramework%\Temporary ASP.NET Files.

urlLinePragmas

Atributo Boolean opcional.

Especifica si el compilador debe utilizar direcciones URL en lugar de rutas de acceso físicas.

El tipo predeterminado es False.

Elementos secundarios

Elemento

Descripción

assemblies

Define una colección de nombres de ensamblados que se usan durante la compilación de un recurso ASP.NET.

buildProviders

Define una colección de proveedores de generación que se utilizan para compilar archivos de recursos personalizados. Para obtener más información, vea la clase BuildProvider.

codeSubDirectories

Define una colección ordenada de subdirectorios que contienen los archivos que se compilan en tiempo de ejecución.

compilers

Define una colección de opciones de compilador.

NotaNota
En .NET Framework versión 2.0 y posteriores, este elemento ha quedado desusado en favor del elemento compilers de la sección system.codeDom.Sin embargo, el uso del elemento secundario compilers del elemento compilation sigue siendo válido y reemplaza el elemento compilers que se encuentra en la sección system.codedom.

expressionBuilders

Define una colección de cadenas de recursos que se usan durante la compilación. Las cadenas de recursos asocian los prefijos con generadores de expresiones.

folderLevelBuildProviders

Define una colección de proveedores de compilación que se utilizan para compilar archivos de recursos personalizados en las carpetas especificadas. Los proveedores de compilación se asignan a extensiones de archivo y se utilizan para generar código de los archivos del tipo especificado. Para obtener más información, vea la clase FolderLevelBuildProvider.

Elementos primarios

Elemento

Descripción

configuration

Especifica el elemento raíz requerido en cada archivo de configuración usado por Common Language Runtime y las aplicaciones de .NET Framework.

system.web

Especifica el elemento raíz de los valores de configuración ASP.NET en un archivo de configuración y contiene los elementos de configuración que configuran el comportamiento de las aplicaciones Web ASP.NET.

Comentarios

El elemento compilation configura todas las opciones de compilación que utiliza ASP.NET para compilar aplicaciones.

En .NET Framework 2.0, el elemento secundario compilers del elemento compilation ha quedado desusado y se utiliza el elemento compilers de la sección system.codeDom. Sin embargo, el uso del elemento secundario compilers del elemento compilation sigue siendo válido y reemplaza el elemento compilers que se encuentra en la sección system.codedom.

Configuración predeterminada

El siguiente elemento compilation predeterminado no se configura explícitamente en el archivo Machine.config o en el archivo Web.config raíz. Sin embargo, es la configuración predeterminada que devuelve la aplicación. Los elementos se agregan a las colecciones assemblies, buildProviders y expressionBuilders en el archivo Web.config raíz.

<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>

El siguiente elemento de compilación predeterminado está configurado en el archivo Machine.config de .NET Framework 1.1. Existe una configuración similar en .NET Framework 1.0, excepto los números de versión.

<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>

Ejemplo

En el siguiente ejemplo de código se muestra cómo configurar las opciones de compilación de una aplicación.

<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>

Información de elemento

Controlador de la sección de configuración

CompilationSection

Miembro de configuración

Compilation

Ubicaciones configurables

Machine.config

Web.config del nivel raíz

Web.config del nivel de aplicaciones

Web.config del nivel de directorio virtual o físico

Requisitos

Microsoft Internet Information Services (IIS) 5.0, 5.1 o 6.0

.NET Framework 1.0, 1.1 ó 2.0

Visual Studio 2003 o Visual Studio 2005

Vea también

Tareas

Cómo: Configurar directorios concretos mediante la configuración de la ubicación

Cómo: Bloquear los valores de configuración de ASP.NET

Referencia

Elemento system.web (Esquema de configuración de ASP.NET)

Elemento assemblies para compilation (Esquema de configuración de ASP.NET)

Elemento buildProviders para compilation (Esquema de configuración de ASP.NET)

Elemento codeSubDirectories para compilation (Esquema de configuración de ASP.NET)

Elemento compilers para compilation (Esquema de configuración de ASP.NET)

Elemento expressionBuilders para compilation (Esquema de configuración de ASP.NET)

Elemento configuration (Esquema de configuración general)

System.Configuration

System.Web.Configuration

CompilationSection

Compilation

Conceptos

Información general sobre la compilación de ASP.NET

Información general sobre sintaxis de páginas web ASP.NET

Jerarquía de archivos y herencia de la configuración de ASP.NET

Proteger la configuración de ASP.NET

Escenarios de configuración de ASP.NET

Varias versiones de .NET Framework de destino para proyectos web ASP.NET

Otros recursos

Opciones de configuración generales (ASP.NET)

Opciones de configuración de ASP.NET

Administración de sitios web ASP.NET

Archivos de configuración de ASP.NET

API de configuración de ASP.NET