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

Actualización: noviembre 2007

ASP.NET puede precompilar un sitio web antes de ponerlo a disposición de los usuarios. Esto ofrece muchas ventajas, por ejemplo, tiempo de respuesta más rápido, comprobación de errores, protección del código fuente y una implementación eficaz.

También puede compilar un proyecto utilizando el modelo de proyecto de aplicación web. Todos los archivos de código (independiente, subyacente y archivos de clase) del proyecto se compilan en un ensamblado único y se almacenan en el directorio Bin. Debido a que la compilación crea un único ensamblado, puede especificar atributos como el nombre de ensamblado y la versión. También puede especificar la ubicación del ensamblado resultante si no desea que esté en el directorio Bin. Para obtener más información, vea Compilar proyectos de aplicaciones web.

Este tema contiene:

  • Escenarios

  • Características de la precompilación

  • Información general

  • Ejemplos de código

Características

Precompilar un sitio web de ASP.NET ofrece las ventajas siguientes:

  • El tiempo de respuesta para los usuarios es más rápido, ya que las páginas y los archivos de código no tienen que compilarse la primera vez que se solicitan. Esto resulta especialmente útil en sitios grandes que se actualizan con frecuencia.

  • Se trata de una forma de identificar los errores en tiempo de compilación antes de que los usuarios vean un sitio.

  • Es posible crear una versión compilada del sitio que se puede implementar en un servidor de producción sin el código fuente.

Volver al principio

Información general

De forma predeterminada, las páginas Web ASP.NET y los archivos de código se compilan de forma dinámica la primera vez que los usuarios solicitan un recurso como, por ejemplo, una página de un sitio Web. Una vez compiladas las páginas y los archivos de código por primera vez, los recursos de compilación se almacenan en la memoria caché. Por consiguiente, las solicitudes posteriores a la misma página serán muy eficaces.

ASP.NET también puede precompilar un sitio completo antes de ponerlo a disposición de los usuarios. ASP.NET proporciona las siguientes opciones para precompilar un sitio:

  • Precompilar un sitio en contexto. Esta opción es útil para aquellos sitios donde se desea mejorar el rendimiento y realizar la comprobación de errores.

  • Precompilar un sitio para implementarlo. Esta opción crea un resultado especial que se puede implementar en un servidor de producción.

Además, puede precompilar un sitio para que sea de sólo lectura o actualizable. En las secciones siguientes se proporcionan más detalles sobre cada opción.

Precompilación en contexto

Se puede mejorar en cierto modo el rendimiento de un sitio web si se precompila. Esto es particularmente cierto en los sitios donde se producen cambios e incorporaciones frecuentes en las páginas web ASP.NET y en los archivos de código. En un sitio web fluido, el tiempo adicional necesario para compilar dinámicamente las páginas nuevas y modificadas puede afectar a la calidad que percibe el usuario.

Si se precompila un sitio en contexto de forma eficaz, se realiza la misma compilación que cuando los usuarios solicitan las páginas del sitio. Por consiguiente, la principal mejora en el rendimiento consiste en que las páginas no tienen que compilarse la primera vez que se solicitan.

Cuando se realiza la precompilación en contexto, se compilan todos los tipos de archivo de ASP.NET. (Los archivos HTML, de gráficos y otros archivos estáticos que no son ASP.NET se dejan tal cual). El proceso de precompilación sigue la misma lógica que utiliza ASP.NET para la compilación dinámica y tiene en cuenta las dependencias entre los archivos. Durante la precompilación, el compilador crea ensamblados para todo el resultado ejecutable y los coloca en una carpeta especial bajo la carpeta %raízDelSistema%\Microsoft.NET\Framework\versión\Temporary ASP.NET Files. A continuación, ASP.NET atiende las solicitudes de las páginas de los ensamblados de dicha carpeta.

Si se vuelve a precompilar el sitio, sólo se compilarán aquellos archivos que sean nuevos o que se hayan modificado (o aquéllos que tienen dependencias en el tipo de archivos descritos). Debido a esta optimización por parte del compilador, resulta práctico compilar el sitio incluso después de realizar actualizaciones poco relevantes.

Precompilación para implementación

Otro uso de la precompilación de un sitio consiste en generar una versión ejecutable del sitio en cuestión que se pueda implementar en un servidor de producción. Al precompilar para implementación, se crea un resultado en formato de diseño. El diseño contiene ensamblados, información de configuración, información sobre las carpetas del sitio y archivos estáticos (como archivos HTML y gráficos).

Después de compilar el sitio, se puede implementar el diseño en un servidor de producción utilizando herramientas como el comando Windows XCopy, FTP, la instalación de Windows, etcétera. Una vez implementado el diseño, éste funciona como el sitio indicado y ASP.NET atiende las solicitudes de páginas desde los ensamblados del diseño en cuestión.

Precompilar un sitio para implementación es una medida de protección del código fuente y de otra propiedad intelectual. Para obtener más información sobre cómo funciona el compilador con archivos durante la compilación para implementación, vea Control de archivos durante la compilación de un sitio para implementarlo, más adelante en este tema.

Se puede realizar una precompilación para su posterior implementación de dos maneras: precompilar sólo para implementación o precompilar para implementación y actualización.

Precompilar sólo para implementación

Cuando se precompila sólo para realizar una implementación, el compilador genera los ensamblados de casi todos los archivos de código fuente de ASP.NET que normalmente se compilan en tiempo de ejecución. Aquí se incluye el código de programas de páginas, archivos de clases .cs y .vb, otros archivos de código y de recursos. El compilador quita de los resultados todo el código fuente y el de marcado. En el diseño resultante, se generan archivos compilados para cada uno de los archivos .aspx (con la extensión .compiled) que contienen punteros al ensamblado adecuado para dicha página.

Para cambiar el sitio web, incluido el diseño de las páginas, es necesario cambiar los archivos originales, recompilar el sitio e implementar de nuevo dicho diseño. La única excepción es la configuración del sitio. Puede realizar cambios en el archivo Web.config en el servidor de producción sin tener que volver a compilar el sitio.

Esta opción proporciona el mayor grado de protección para las páginas web ASP.NET y el mejor rendimiento al iniciar el sistema.

Precompilar para implementación y actualización

Cuando se precompila para implementación y actualización, el compilador genera ensamblados de todo el código fuente (excepto del código de las páginas de un solo archivo) y de otros archivos que normalmente generan ensamblados, como los de recursos. El compilador convierte archivos .aspx en archivos únicos que utilizan el modelo de código subyacente compilado y los copian en el diseño.

Esta opción permite realizar cambios limitados en las páginas web ASP.NET de un sitio después de compilarlas. Por ejemplo, se puede cambiar la organización de los controles, colores, fuentes y otros aspectos relacionados con el aspecto de las páginas. También se pueden agregar controles, siempre que no requieran controladores de eventos u otro código.

Cuando el sitio se ejecuta por primera vez, ASP.NET realiza otra compilación para crear el resultado a partir del marcado.

Nota:

Un sitio precompilado actualizable no permite que varias páginas hagan referencia a la misma clase CodeFile.

Matriz de decisión de precompilación

Utilice la tabla siguiente para decidir cuál es el modelo de compilación que debe utilizar. Algunas de las opciones enumeradas en la tabla se describen más adelante en este tema.

Objetivo

Modelo de compilación

Desarrollar rápidamente aplicaciones sin preocuparse por la compilación del código.

Utilice la compilación predeterminada (ninguna precompilación).

Mejorar el tiempo de respuesta para la primera solicitud de página al sitio web.

Utilice la precompilación en contexto o una de las opciones de compilación para implementación.

Separar el código fuente y el código de la interfaz de usuario (UI).

Utilice la precompilación con una interfaz de usuario actualizable.

Modificar el código de la UI sin cambiar el código fuente.

Utilice la precompilación con una interfaz de usuario actualizable.

Quitar del servidor de producción todo el código fuente y el código de la interfaz de usuario.

Utilice la precompilación con una interfaz de usuario no actualizable.

Actualizar la aplicación reemplazando ensamblados concretos.

Utilice la precompilación con nombres fijos.

Aumentar la seguridad de la aplicación mediante ensamblados de nombre seguro.

Utilice la precompilación con ensamblados firmados.

Realizar precompilación

Puede precompilar un sitio Web utilizando la herramienta Aspnet_compiler.exe en la línea de comandos. Para obtener más información, vea Cómo: Precompilar sitios Web ASP.NET para la implementación y Herramienta de compilación de ASP.NET (Aspnet_compiler.exe). Visual Studio también incluye comandos para precompilar un sitio web desde el IDE.

Nota:

Al precompilar un sitio Web, se compila sólo ese sitio, no sus posibles sitios secundarios. Si un sitio web contiene una subcarpeta marcada como aplicación en IIS, la aplicación secundaria no se compila al precompilar la carpeta primaria.

Al precompilar un sitio web se aplica una restricción de código a los sitios que se van a compilar con la protección de código fuente habilitada. Una clase de página base (una clase de código subyacente) puede hacer referencia a la clase de página (archivo .aspx) y a los miembros de la clase de página asociados utilizando un nombre de clase completo. Sin embargo, esta clase de referencia no funcionará al precompilar el sitio con la protección de código fuente habilitada. Esto se debe a que la clase de página base del archivo de código subyacente no se encuentra en el mismo ensamblado que la clase de página derivada de la página .aspx. Para obtener más información acerca de la precompilación con la protección de código fuente habilitada, vea Cómo: Firmar ensamblados para sitios Web precompilados.

Compilación predeterminada

No es necesario compilar una aplicación ASP.NET manualmente. De forma predeterminada, ASP.NET compila la aplicación web la primera vez que un explorador web solicite una página de la aplicación. Si realiza un cambio en un archivo de la aplicación, la próxima vez que se solicite una página el tiempo de ejecución de ASP.NET determina las dependencias del archivo modificado. Vuelve a compilar sólo los archivos afectados por el cambio.

Ventajas

Las ventajas de la compilación predeterminada son las siguientes:

  • Es fácil de utilizar. El compilador de ASP.NET hace todo el trabajo.

  • Es el mejor modelo de compilación durante el desarrollo cuando los pasos adicionales requeridos para precompilar un sitio web ralentizan el proceso de desarrollo.

Desventajas

Las desventajas de la compilación predeterminada son las siguientes:

  • Pueda causar importantes retrasos cuando se solicita por primera vez el sitio Web.

  • Requiere el almacenamiento de los archivos de código fuente en el servidor de producción.

  • Hace que el código fuente y el código de la interfaz de usuario estén disponibles para cualquier usuario con acceso al sistema de archivos del directorio de sitios Web en el servidor.

Cuándo utilizar la compilación predeterminada

Utilice la compilación predeterminada en los siguientes casos:

  • Al desarrollar y probar un sitio Web.

  • Para los sitios web con información principalmente estática.

  • Para los sitios Web que no cambian con frecuencia.

  • Si no le preocupa almacenar los archivos de código fuente en el servidor de producción.

Compilación en contexto

Puede precompilar un sitio que ya está en un servidor de producción. Esto se denomina compilación en contexto. Si realiza un cambio en un archivo de la aplicación, puede volver a compilar el archivo afectado con la herramienta de compilación de ASP.NET. Los archivos afectados también se volverán a compilar la próxima vez que se solicite una página de la aplicación.

Para obtener más información acerca de este modelo de compilación, vea Cómo: Precompilar sitios Web ASP.NET.

Ventajas

Las ventajas de utilizar la compilación en contexto son las siguientes:

  • Se reduce el tiempo de respuesta a la primera solicitud desde el sitio Web.

  • No se necesita dar ningún paso de implementación especial; la aplicación se compila exactamente igual que cuando se solicita una página del sitio.

Desventajas

Las desventajas de utilizar la compilación en contexto son las siguientes:

  • Todo el código fuente de la aplicación debe almacenarse en el servidor de producción.

  • Hace que el código fuente y el código de la interfaz de usuario estén disponibles para cualquier usuario con acceso al directorio de sitios Web.

Cuándo utilizar la compilación en contexto

Utilice la compilación en contexto en los siguientes casos:

  • Se realizan cambios frecuentes en las páginas del sitio web.

  • No le preocupa almacenar los archivos de código fuente en el servidor de producción.

  • Desea mejorar el tiempo de respuesta de las primeras solicitudes de página.

Precompilar con una interfaz de usuario actualizable

Utilizando el modificador -u de la herramienta de compilación de ASP.NET puede compilar el código fuente (.cs, archivos .vb y archivos .resource) a una DLL. Puede dejar el marcado de la interfaz de usuario de los archivos .aspx disponible para actualizar. Una vez implementado el sitio web en un servidor de producción, se pueden realizar cambios en el código .aspx sin tener que volver a compilar todo el sitio web.

Para obtener más información acerca de este método de compilación, vea Cómo: Precompilar sitios Web ASP.NET para la implementación.

Ventajas

Las ventajas de precompilar un sitio web con una interfaz de usuario actualizable son las siguientes:

  • Se reduce el tiempo de respuesta a la primera solicitud desde el sitio Web.

  • Los diseñadores de la interfaz de usuario pueden modificar la apariencia y el comportamiento de un sitio web sin tener que volver a compilar todo el sitio web.

  • Es una medida de protección de la propiedad intelectual en el código fuente de la aplicación. Se protege de la observación casual por cualquiera que tenga acceso al directorio de sitios web.

Desventajas

Las desventajas de precompilar un sitio web con una interfaz de usuario actualizable son las siguientes:

  • Requiere un paso de compilación independiente antes de la implementación en servidores de producción.

  • La propiedad intelectual de la interfaz de usuario (archivos .aspx) de la aplicación está disponible para cualquier usuario con acceso al directorio de sitios web.

  • Varias páginas no pueden hacer referencia a la misma clase CodeFile, que es el archivo de código asociado para una página que utiliza el modelo de código subyacente.

Cuándo precompilar con una interfaz de usuario actualizable

Precompile una aplicación para que tenga una interfaz de usuario actualizable en los siguientes casos:

  • Los diseñadores de la interfaz de usuario trabajan de manera independiente de los desarrolladores del código fuente.

  • El código fuente del programa contiene propiedad intelectual que desea proteger de la observación casual.

  • No desea almacenar el código fuente del programa en el servidor de producción.

Precompilar con una interfaz de usuario no actualizable

La herramienta de compilación de ASP.NET puede compilar todo el código fuente de una aplicación en DLL que se implementan en el directorio Bin de la aplicación. Se incluyen los archivos de la interfaz de usuario, como .aspx y .ascx.

Para obtener más información acerca de este método de compilación, vea Cómo: Precompilar sitios Web ASP.NET para la implementación.

Ventajas

Las ventajas de precompilar con una interfaz de usuario no actualizable son las siguientes:

  • Se reduce el tiempo de respuesta a la primera solicitud desde el sitio Web.

  • Es una medida de protección de la propiedad intelectual en el código fuente de la aplicación y en el código de la interfaz de usuario. Se protege de la observación casual por cualquiera que tenga acceso al directorio de sitios web.

Desventajas

Las desventajas de precompilar con una interfaz de usuario no actualizable son las siguientes:

  • Requiere un paso de compilación independiente antes de la implementación en servidores de producción.

  • Incluso los pequeños cambios realizados en la interfaz de usuario de la aplicación requieren que se vuelva a compilar todo el sitio web.

Cuándo precompilar con una interfaz de usuario no actualizable

Precompile el sitio web para que tenga una interfaz de usuario no actualizable en los siguientes casos:

  • El código de la interfaz de usuario contiene propiedad intelectual que desea proteger de la observación casual.

  • No tiene que cambiar la interfaz de usuario con frecuencia.

  • Sólo desea tener archivos DLL compilados en el servidor de producción.

Precompilar en ensamblados de nombre fijo

La herramienta de compilación de ASP.NET utiliza nombres aleatorios para los ensamblados que se generan durante la compilación. El nombre del ensamblado cambia cada vez que se vuelve a compilar la aplicación.

Dado que los nombres de ensamblado cambian, es preciso volver a implementar toda la aplicación para reparar un ensamblado. Sin embargo, utilizando el modificador -fixednames de la herramienta de compilación de ASP.NET, se puede crear un ensamblado para cada página de la aplicación. El nombre del ensamblado no cambiará en compilaciones posteriores. Por consiguiente, puede crear actualizaciones Service Release para la aplicación que reemplacen sólo los ensamblados cambiados.

Dado que el modificador -fixednames crea un ensamblado individual para cada página, se debe limitar el número de páginas de la aplicación.

Para obtener más información acerca de este método de compilación previa, vea Cómo: Generar nombres fijos con la herramienta Compilación de ASP.NET.

Ventajas

Las ventajas de precompilar en ensamblados de nombre fijo son las siguientes:

  • El nombre de los ensamblados individuales no cambia de una compilación a otra. Esto le permite reemplazar ensamblados concretos sin volver a implementar toda la aplicación.

  • Las actualizaciones secundarias de la aplicación pueden ser más específicas.

Desventajas

Las desventajas de precompilar en ensamblados de nombre fijo son las siguientes:

  • Se crea un ensamblado para cada página en la aplicación. Esto puede crear muchos ensamblados en el caso de sitios que tengan muchas páginas.

Cuándo precompilar en ensamblados de nombre fijo

Precompile el sitio web en ensamblados de nombre fijo en los siguientes casos:

  • Necesita reparar aplicaciones web sin tener que reemplazar toda la aplicación.

Precompilar en ensamblados firmados

Se puede usar la herramienta de compilación de ASP.NET para crear ensamblados de nombre seguro que se puedan implementar en la Caché de ensamblados global (GAC) o el directorio Bin de la aplicación. Si se utiliza un ensamblado firmado, es más difícil que usuarios malintencionados reemplacen los ensamblados de la aplicación con código malintencionado.

Para obtener más información acerca de este método de compilación, vea Cómo: Firmar ensamblados para sitios Web precompilados.

Ventajas

Las ventajas de precompilar en ensamblados firmados son las siguientes:

  • Los ensamblados firmados aumentan la seguridad de la aplicación ya que es más difícil que los ensamblados sean reemplazados por código malintencionado.

Desventajas

Las desventajas de precompilar en ensamblados firmados son las siguientes:

  • La administración de claves en los entornos de desarrollo compartidos puede ser compleja.

  • El atributo AllowPartiallyTrustedCallersAttribute de los ensamblados debe ser invocado por el motor en tiempo de ejecución de ASP.NET.

Cuándo precompilar en ensamblados firmados

Precompile el sitio web en ensamblados firmados en los siguientes casos:

  • Los usuarios tienen acceso al directorio de la aplicación o al GAC, y pueden reemplazar los ensamblados de la aplicación.

  • Desea limitar la capacidad de otros usuarios para reemplazar los ensamblados generados por el código de la aplicación.

Escribir los resultados de la precompilación

Cuando finaliza el proceso de precompilación, el resultado se escribe en una carpeta especificada. Puede escribir el resultado en cualquier carpeta a la que tenga acceso en el sistema de archivos, mediante FTP (File Transfer Protocol, Protocolo de transferencia de archivos) o HTTP. Debe tener los permisos adecuados para poder escribir en el sitio de destino.

Nota:

El proceso de publicación implementa sólo los archivos de las carpetas del sitio web y sus subcarpetas. No implementa el archivo Machine.config. Por consiguiente, la configuración del servidor web de destino puede que sea distinta a la de su equipo; por tanto, puede afectar al comportamiento de la aplicación.

Puede especificar una carpeta de destino en un servidor de ensayo o de producción, o puede escribir el resultado en una carpeta del equipo local. Si especifica una carpeta en un servidor de producción, puede precompilar e implementar en un solo paso. Si escribe el resultado en una carpeta que no forma parte del sitio web, puede copiar el resultado en el servidor en un paso independiente.

Nota:

Si abre un sitio web precompilado en Visual Studio, no podrá generar el sitio web. Las opciones de generación estarán desactivadas. Para cambiar el sitio, se recomienda modificar los archivos del sitio web original, precompilar el sitio y volver a publicarlo.

El resultado del proceso de compilación incluye los ensamblados compilados de código o páginas. Si elige la opción que permite que el sitio precompilado se actualice, las clases de código subyacente de los archivos .aspx, .asmx y .ashx se compilan en ensamblados. Sin embargo, los propios archivos .aspx, .asmx y .ashx se copian tal cual en la carpeta de destino por lo que puede cambiar su diseño después de implementar el sitio. Por lo que respecta a sitios que se pueden actualizar, el código de páginas únicas no se compila en ningún ensamblado. En su lugar, se implementa como código fuente.

No se compilan los archivos estáticos. En su lugar, se copian tal cual en la carpeta de salida. Los archivos estáticos incluyen gráficos, archivos .htm o .html, de texto, etc. Para obtener más información, vea Control de archivos durante la compilación de un sitio para implementarlo, más adelante en este tema.

Si se produce un error durante la precompilación, se informa de él en las ventanas Resultados y Lista de errores. Los errores durante la precompilación evitarán que se compile y se publique el sitio.

Control de archivos durante la compilación previa de ASP.NET

Al precompilar un sitio para implementación, ASP.NET crea un diseño, es decir, una estructura que contiene los resultados del compilador. En esta sección se describe cómo trabajar con los archivos durante la precompilación, así como la estructura del diseño y su contenido.

Es posible precompilar tanto el código fuente (cualquier archivo que genera un ensamblado, incluido el código del programa y los recursos) como el marcado (archivos .aspx), o sólo el código fuente.

Archivos compilados

El proceso de precompilación realiza acciones en distintos tipos de archivos en una aplicación Web ASP.NET. Los archivos se tratan de manera diferente dependiendo de si la aplicación se precompila solo para implementación o si se precompila para implementación y actualización.

Nota:

Al precompilar un sitio sólo para implementación o para implementación y actualización, no se conservan las listas de control de acceso (ACL) a archivos en los archivos y subdirectorios de destino. Por ejemplo, si precompila un sitio y lo implementa en una ubicación de destino y después cambia la ACL de un archivo y, a continuación, vuelve a precompilar y a implementar el sitio, se perderá el cambio de la ACL.

En la siguiente tabla se describen los diferentes tipos de archivo y las acciones que se realizan en ellos si la aplicación sólo se precompila para implementación.

Tipos de archivo

Acción de precompilación

Ubicación de salida

.aspx, ascx, .master

Genera ensamblados y un archivo .compiled que señala al ensamblado. El archivo original se deja en su lugar como marcador para las solicitudes que se atienden.

Los ensamblados y archivos .compiled se escriben en la carpeta Bin. Las páginas (archivos .aspx, con contenido eliminado) se dejan en su ubicación original.

.asmx, .ashx

Genera ensamblados. El archivo original se deja en su lugar como marcador para las solicitudes que se atienden.

Carpeta Bin

Archivos de la carpeta App_Code

Genera uno o varios ensamblados (según la configuración de Web.config).

Nota:
El contenido estático de la carpeta App_Code no se copia en la carpeta de destino.

Carpeta Bin

.Archivos .cs o .vb que no se encuentran en la carpeta App_Code

Compila con la página o recurso que depende de él.

Carpeta Bin

Archivos .dll de la carpeta Bin.

Copia los archivos tal cual.

Carpeta Bin

Archivos de recursos (.resx)

Para archivos .resx situados en las carpetas App_LocalResources o App_GlobalResources, genera un ensamblado o ensamblados y una estructura de referencia cultural.

Carpeta Bin

Archivos de la carpeta App_Themes y subcarpetas

Genera ensamblados en el destino y archivos .compiled que señalan a los ensamblados.

Bin

Archivos estáticos (.htm, .html, .js, archivos gráficos, etc.)

Copia los archivos tal cual.

La misma estructura que en el origen.

Archivos de definición del explorador

Copia los archivos tal cual.

Nota:
La información del explorador se hereda de los archivos de configuración del nivel de equipo y, por lo tanto, pueden comportarse de manera diferente en el servidor de destino.

App_Browsers

Proyectos dependientes

Genera el resultado del proyecto dependiente en un ensamblado.

Carpeta Bin

Archivos Web.config

Copia los archivos tal cual.

La misma estructura que en el origen.

Archivos Global.asax

Genera un ensamblado.

Carpeta Bin

En la siguiente tabla se describen los diferentes tipos de archivo y las acciones que se realizan con los mismos si la aplicación se precompila para la implementación y la actualización.

Tipos de archivo

Acción de precompilación

Ubicación de salida

.aspx, ascx, .master

Genera ensamblados para los archivos que tienen archivos de clase de código subyacente. Genera un archivo .compiled que señala al ensamblado. Las versiones de un solo archivo de estos archivos se copian tal cual en el destino.

Los ensamblados y archivos .compiled se escriben en la carpeta Bin.

.asmx, .ashx

Copia los archivos tal cual sin compilarlos.

La misma estructura que en el origen.

Archivos de la carpeta App_Code

Genera uno o varios ensamblados (según la configuración de Web.config).

Nota:
El contenido estático de la carpeta App_Code no se copia en la carpeta de destino.

Carpeta Bin

Archivos .cs o .vb que no se encuentran en la carpeta App_Code

Compila con la página o recurso que depende de él.

Carpeta Bin

Archivos .dll de la carpeta Bin.

Copia los archivos tal cual.

Carpeta Bin

Archivos de recursos (.resx)

Para archivos .resx en las carpetas App_GlobalResources, genera un ensamblado o ensamblados y una estructura de referencia cultural.

Para archivos .resx en las carpetas App_LocalResources, copia los archivos tal cual en la carpeta App_LocalResources de la ubicación de salida.

Los ensamblados se colocan en la carpeta Bin.

Archivos de la carpeta App_Themes y subcarpetas

Copia los archivos tal cual.

La misma estructura que en el origen.

Archivos estáticos (.htm, .html, .js, archivos gráficos, etc.)

Copia los archivos tal cual.

La misma estructura que en el origen.

Archivos de definición del explorador

Copia los archivos tal cual.

Nota:
La información del explorador se hereda de los archivos de configuración del nivel de equipo y, por lo tanto, pueden comportarse de manera diferente en el servidor de destino.

App_Browsers

Proyectos dependientes

Genera el resultado del proyecto dependiente en un ensamblado.

Carpeta Bin

Archivos Web.config

Copia los archivos tal cual.

La misma estructura que en el origen.

Archivos Global.asax

Genera un ensamblado.

Carpeta Bin

Archivos .compiled

Para los archivos ejecutables de una aplicación web ASP.NET, el compilador agrega la extensión .compiled al nombre de los ensamblados y archivos. El compilador genera el nombre de ensamblado. El archivo .compiled no contiene código ejecutable. Por el contrario, sólo contiene la información que ASP.NET necesita para encontrar el ensamblado adecuado.

Después de implementar la aplicación precompilada, ASP.NET utiliza los ensamblados de la carpeta Bin para procesar solicitudes. El resultado de precompilación incluye archivos .aspx o .asmx como marcadores de posición para las páginas. Los archivos de marcador no contienen código. Sólo existen para invocar ASP.NET para una solicitud de página determinada. Los archivos de marcador de posición también permiten establecer los permisos de archivo para restringir el acceso a las páginas.

Actualizar sitios web precompilados

Después de implementar un sitio web precompilado, se pueden realizar algunos cambios en los archivos del sitio, con ciertas limitaciones. En la tabla siguiente se describe el efecto de algunos tipos de cambios.

Tipo de archivo

Cambios permitidos (sólo implementación)

Cambios permitidos (implementación y actualización)

Archivos estáticos (.htm, .html, .js, archivos gráficos, etc.)

Los archivos estáticos se pueden cambiar, quitar o agregar. Si una página Web ASP.NET hace referencia a páginas o elementos de página que se cambian o se quitan, podrían producirse errores.

Los archivos estáticos se pueden cambiar, quitar o agregar. Si una página Web ASP.NET hace referencia a páginas o elementos de página que se cambian o se quitan, podrían producirse errores.

Archivo .aspx

No se permite realizar ningún cambio en las páginas existentes. No se puede agregar ningún archivo .aspx nuevo.

Se puede cambiar el diseño de los archivos .aspx y agregar elementos que no requieran código, como elementos HTML y controles de servidor ASP.NET que no tengan controladores de eventos. También se pueden agregar archivos .aspx nuevos que se compilarán en la primera solicitud.

Archivos .skin

Los cambios y los nuevos archivos .skin se pasan por alto.

Se permiten cambios y nuevos archivos .skin.

Archivos Web.config

Se permiten cambios que afecten a la compilación de archivos .aspx. Se pasan por alto las opciones de compilación para depurar o para el procesamiento por lotes.

No se permite ningún cambio en las propiedades de perfiles o en los elementos de proveedor.

Se permiten cambios si no afectan a la compilación del sitio o de la página. Esto incluye valores del compilador, niveles de confianza y globalización. Se pasan por alto los cambios que afectan a la compilación o que modifican el comportamiento de las páginas compiladas. También podrían generarse errores. Se permiten otros cambios.

Definiciones del explorador

Se permiten cambios y nuevos archivos.

Se permiten cambios y nuevos archivos.

Ensamblados compilados de los archivos de recursos (.resx)

Se pueden agregar ensamblados de recursos nuevos tanto para los recursos globales como locales.

Se pueden agregar ensamblados de recursos nuevos tanto para los recursos globales como locales.

Ejemplos de código

Cómo: Precompilar sitios Web ASP.NET para la implementación

Cómo: Firmar ensamblados para sitios Web precompilados

Cómo: Crear ensamblados que tienen versión para sitios Web precompilados

Cómo: Generar nombres fijos con la herramienta Compilación de ASP.NET

Cómo: Configurar sitios Web publicados

Volver al principio

Vea también

Referencia

Herramienta de compilación de ASP.NET (Aspnet_compiler.exe)

Volver al principio