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

[Esta documentación se proporciona solo para fines preliminares y está sujeta a cambios en versiones posteriores. Se incluye temas en blanco como marcadores].

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 próximas secciones 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 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 (desusado).

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.

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

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

Para obtener más información, vea Understanding ASP.NET Dynamic Compilation.

strict

Atributo Boolean opcional.

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

El valor predeterminado es False.

targetFramework

Atributo String opcional.

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

El valor 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 .NET Framework Targeting for Web Projects.

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 proveedores de compilació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.

NoteNote
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.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 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. 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 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) versión 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

How to: Configure Specific Folders Using Location Settings

How to: Lock ASP.NET Configuration Settings

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

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

Otros recursos

Opciones de configuración generales (ASP.NET)

Opciones de configuración de ASP.NET

Configuring ASP.NET Applications

ASP.NET Configuration Files

ASP.NET Configuration API