Instrucciones para crear aplicaciones y componentes para la ejecución simultánea
Siga estas instrucciones generales para crear aplicaciones o componentes administrados que se diseñan para la ejecución simultánea.
Enlace la identidad de tipo a una determinada versión de un archivo.
Common Language Runtime enlaza la identidad de tipo a una versión determinada de un archivo mediante los ensamblados con nombre seguro. Para crear una aplicación o componente para la ejecución simultánea, debe asignar un nombre seguro a todos los ensamblados. De este modo, se crea una identidad de tipo precisa, que garantiza que cualquier resolución de tipos se dirige al archivo correcto. Un ensamblado con nombre seguro contiene la información de versión, referencia cultural y editor que el motor en tiempo de ejecución utiliza para localizar el archivo correcto para satisfacer una solicitud de enlace.
Utilice el almacenamiento con identificación de versión.
El motor en tiempo de ejecución utiliza la caché de ensamblados global que ofrece un almacenamiento con identificación de versión. La caché de ensamblados global es una estructura de directorios con identificación de versión que se instala en todos los equipos que utilicen .NET Framework. Los ensamblados instalados en la caché de ensamblados global no se sobrescriben cuando se instala una nueva versión del ensamblado.
Cree una aplicación o componente que se ejecute de forma aislada.
Una aplicación o componente que se ejecuta de forma aislada debe administrar los recursos para evitar conflictos cuando dos instancias de la aplicación o componente se ejecutan simultáneamente. La aplicación o componente debe utilizar también una estructura de archivos específica de la versión.
Aislamiento de componentes y de aplicaciones
El aislamiento es una de las claves para el correcto diseño de aplicaciones o componentes para la ejecución simultánea. La aplicación o componente debe administrar todos los recursos, en particular la entrada/salida de archivos, de forma aislada. Siga estas instrucciones para comprobar que la aplicación o componente se ejecutan de forma aislada:
Escriba en el Registro de una forma específica a la versión. Almacene valores en subárboles o claves que indiquen la versión, y no comparta la información o el estado entre versiones de un componente. De este modo, impide que dos aplicaciones o componentes que se ejecutan al mismo tiempo sobrescriban información.
Asigne un nombre específico de la versión a los objetos del núcleo de forma que no se produzca una condición de anticipación. Por ejemplo, una condición de anticipación se produce cuando dos semáforos de dos versiones de la misma aplicación se esperan el uno al otro.
Cree nombres de directorios y de archivos con identificación de versiones. Esto significa que las estructuras de archivos deben basarse en la información de versión.
Cree cuentas de usuario y grupos con el formato específico de la versión. Las cuentas de usuario y los grupos creados en una aplicación deben identificarse por la versión. No comparta cuentas de usuario ni grupos entre versiones de una aplicación.
Instalar y desinstalar versiones
Cuando diseñe una aplicación para la ejecución simultánea, siga estas instrucciones relacionadas con la instalación y desinstalación de versiones:
No elimine ninguna información del Registro que pueda ser necesaria en otras aplicaciones que se ejecutan con una versión diferente de .NET Framework.
No reemplace información del Registro que puede ser necesaria en otras aplicaciones que se ejecutan con una versión diferente de .NET Framework.
No elimine el registro de componentes COM que pueden ser necesarios en otras aplicaciones que se ejecutan con una versión diferente de .NET Framework.
No cambie la entrada InprocServer32 ni otras entradas del Registro para un servidor COM que ya esté registrado.
No elimine información de cuentas de usuario o grupos que puede ser necesaria en otras aplicaciones que se ejecutan con una versión diferente de .NET Framework.
No agregue entradas al Registro que contengan una ruta de acceso que no especifique la versión.
Número de versión de archivo y número de versión de ensamblado
La versión de archivo es un recurso de la versión Win32 que no utiliza el motor en tiempo de ejecución. En general, la versión de archivo se actualiza hasta para una versión QFE (ingeniería de corrección rápida) en contexto. Dos archivos idénticos pueden tener diferente información de versión de archivo, y dos archivos distintos pueden tener la misma información de versión de archivo.
El motor en tiempo de ejecución utiliza la versión de ensamblado para el enlace de ensamblados. El motor en tiempo de ejecución trata dos ensamblados idénticos con números de versión diferentes como si fuesen dos ensamblados distintos.
La herramienta Caché de ensamblados global (Gacutil.exe) permite reemplazar un ensamblado sólo si el número de versión de archivo corresponde a la versión más reciente. Normalmente, el instalador no instala encima de un ensamblado, salvo que la versión del ensamblado sea posterior.
Vea también
Conceptos
Redirección del enlace de ensamblados
Determinar una estrategia de servicio para aplicaciones y componentes
Otros recursos
Fundamentos de la ejecución simultánea
Crear varias versiones de una aplicación o componente