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

Actualización: noviembre 2007

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

Elemento <configuration>
  Elemento system.web (Esquema de configuración de ASP.NET)
    Elemento compilation (Esquema de configuración de 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>

Atributos y elementos

Las siguientes secciones describen atributos, elementos secundarios y 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 omitirse si se especifica el modo de implementación.

Se trata de un atributo nuevo en .NET Framework, versión 2.0.

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 el valor de este atributo es 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 valor 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 (obsoleto).

El valor 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 valor predeterminado es 1000.

maxBatchSize

Atributo Int32 opcional.

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

El valor 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.

s10awwz0.alert_note(es-es,VS.90).gifNota:
ASP.NET aumenta la propiedad NumRecompilesBeforeAppRestart cada vez que se invalida un ensamblado y no se puede eliminar.

El valor predeterminado es 15.

strict

Atributo Boolean opcional.

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

El valor predeterminado es False.

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 valor 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 los proveedores de generación que se utilizan para compilar los archivos de recursos personalizados.

Se trata de un elemento nuevo en .NET Framework, versión 2.0.

codeSubDirectories

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

Se trata de un elemento nuevo en .NET Framework, versión 2.0.

compilers

Define una colección de opciones de compilador.

s10awwz0.alert_note(es-es,VS.90).gifNota:
En .NET Framework, versión 2.0, este elemento ha quedado obsoleto para pasar a utilizar el elemento compilers de la sección system.codeDom. No obstante, se puede seguir usando el elemento secundario compilers del elemento compilation, lo que reemplaza el elemento compilers ubicado 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 prefijos a los generadores de expresiones.

Se trata de un elemento nuevo en .NET Framework, versión 2.0.

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 obsoleto y se utiliza el elemento compilers de la sección system.codeDom. No obstante, se puede seguir usando el elemento secundario compilers del elemento compilation, lo que reemplaza el elemento compilers ubicado en la sección system.codedom.

Configuración predeterminada

El siguiente elemento compilation predeterminado no está explícitamente configurado en el archivo Machine.config o en el archivo raíz Web.config. 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"
         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>

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 directorios virtuales o físicos

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

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

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

Otros recursos

Opciones de configuración generales (ASP.NET)

Opciones de configuración de ASP.NET

Administrar sitios web ASP.NET

Archivos de configuración de ASP.NET

API de configuración de ASP.NET