Compartir a través de


Redireccionamiento DLL/COM en Windows

El redireccionamiento DLL/COM es una estrategia de aislamiento de aplicaciones empleada por los administradores corporativos en Windows XP.

**Windows Server 2008, Windows Vista, Windows Server 2003 y Windows XP con SP2: ** El uso de estrategias de redireccionamiento DLL/COM no se recomienda porque las aplicaciones aisladas que usan manifiestos y ensamblados en paralelo pueden ser más fáciles de actualizar y atender. La presencia de un archivo .local se omite si hay un manifiesto presente. La estrategia de redirección de DLL/COM mediante archivos .local funciona si la aplicación no tiene un manifiesto.

El redireccionamiento DLL/COM enlaza una aplicación a una versión local de un componente. Los archivos del componente local se pueden mantener separados de la versión del sistema del componente en una ubicación privada para la aplicación. La versión del sistema del componente se registra globalmente y está disponible para cualquier otra aplicación que se enlace a él. La versión local del componente está reservada para el uso exclusivo de la aplicación. Si es necesario, los archivos de componente utilizados por la aplicación se pueden cargar en la memoria al mismo tiempo que los archivos de componente del sistema.

El redireccionamiento DLL/COM se activa instalando un archivo especial junto con una copia del archivo de componente local en el mismo directorio que el archivo ejecutable de la aplicación. El archivo especial es un archivo vacío denominado después del nombre de archivo del ejecutable de la aplicación y anexado con .local. Por ejemplo, para activar el redireccionamiento DLL/COM para una aplicación denominada Myapp, se debe copiar la versión local del componente y un archivo vacío denominado Myapp.exe.local en la carpeta que contiene Myapp.exe. Esto enlaza la aplicación a la versión local del componente en lugar de a la versión compartida globalmente del componente.

Cuando una aplicación carga un archivo de componente, como un archivo DLL o .ocx, Windows lo busca primero en la carpeta donde está instalado el archivo .local y ejecutable de la aplicación. Si se encuentra, la aplicación usa ese archivo de componente independientemente de cualquier ruta de búsqueda de directorio definida en la aplicación o en el registro. Si no se encuentra, se usa el archivo de componente en la ruta de acceso de búsqueda definida.

La utilidad de instalación debe hacer lo siguiente para instalar la aplicación con redirección DLL/COM:

  • Un archivo .local vacío debe copiarse en la misma carpeta que el archivo ejecutable de la aplicación.
  • Todos los componentes, archivos DLL y .ocx usados por la aplicación deben copiarse en la misma carpeta que el archivo ejecutable de la aplicación.
  • Los componentes COM aislados deben registrarse con Windows para que diferentes versiones del ensamblado no entren en conflicto entre sí cuando se carguen en memoria al mismo tiempo. El proceso de registro requiere que, aunque la implementación del componente pueda cambiar entre versiones, ciertos metadatos COM, como CLSID, ProgID, Biblioteca de tipos y modelo de subprocesos no.
  • Si la aplicación se instala mediante Windows Installer, el directorio de la aplicación se puede proteger mediante la tabla LockPermissions. Normalmente, el sistema recibe acceso de lectura, escritura y ejecución; todos los demás procesos solo reciben acceso de ejecución y lectura.