Acerca de los ensamblados en paralelo

Los manifiestos describen un ensamblado en paralelo de Windows. Un ensamblado en paralelo contiene una colección de recursos (un grupo de archivos DLL, clases de Windows, servidores COM, bibliotecas de tipos o interfaces) que siempre se proporcionan a las aplicaciones juntas. Estos se describen en el manifiesto del ensamblado.

Normalmente, un ensamblado en paralelo es un único archivo DLL. Por ejemplo, el ensamblado COMCTL32 de Microsoft es un único archivo DLL con un manifiesto, mientras que el ensamblado de bibliotecas en tiempo de ejecución del sistema de desarrollo Microsoft Visual C++ contiene varios archivos. Los manifiestos contienen metadatos que describen los ensamblados en paralelo y las dependencias de ensamblado en paralelo.

El sistema operativo usa ensamblados en paralelo como unidades fundamentales de nomenclatura, enlace, control de versiones, implementación y configuración. Cada ensamblado en paralelo tiene una identidad única. Uno de los atributos de la identidad del ensamblado es su versión. Para obtener más información, vea Versiones de ensamblado.

A partir de Windows XP, las aplicaciones que se ejecutan al mismo tiempo pueden usar varias versiones de ensamblados en paralelo. El cargador usa manifiestos y el número de versión del ensamblado para determinar el enlace correcto de las versiones de ensamblado a las aplicaciones. Los ensamblados y manifiestos en paralelo funcionan con aplicaciones y el administrador en paralelo, como se muestra en la ilustración siguiente.

representación del ensamblado en paralelo típico

En el ejemplo anterior, tanto Comctl32.DLL versión 6.0 como Comctl32.DLL versión 5.0 se encuentran en la caché de ensamblados en paralelo y están disponibles para las aplicaciones. Cuando una aplicación llama a para cargar el archivo DLL, el administrador en paralelo determina si la aplicación tiene una dependencia de versión descrita en un manifiesto. Si no hay ningún manifiesto relevante, el sistema carga la versión predeterminada del ensamblado. Para Windows XP, la versión 5.0 de Comctl32.DLL es el valor predeterminado del sistema. Si el administrador en paralelo encuentra una dependencia de la versión 6.0 indicada en un manifiesto, esa versión se carga para ejecutarse con la aplicación.

Se están haciendo disponibles varios ensamblados del sistema clave de Microsoft como ensamblados en paralelo. Para obtener más información, vea Ensamblados en paralelo de Microsoft compatibles. Los desarrolladores de aplicaciones también pueden crear sus propios ensamblados en paralelo. Para obtener más información, vea Directrices para crear ensamblados en paralelo. En muchos casos, es posible actualizar las aplicaciones existentes para usar ensamblados en paralelo sin tener que cambiar el código de la aplicación.

Se recomienda a los desarrolladores usar ensamblados en paralelo para crear aplicaciones aisladas y actualizar las aplicaciones existentes en aplicaciones aisladas por los siguientes motivos:

  • Los ensamblados en paralelo reducen la posibilidad de conflictos de versión de DLL.
  • El uso compartido de ensamblados en paralelo permite que varias versiones de ensamblados COM o Windows se ejecuten al mismo tiempo.
  • Las aplicaciones y los administradores pueden actualizar la configuración del ensamblado según una configuración global o por aplicación después de la implementación. Por ejemplo, una aplicación se puede actualizar para usar un ensamblado en paralelo que incluya una actualización sin tener que volver a instalar la aplicación.