Caso FlexLMHostID: Sxstrace, Microsoft.VC80.MFC x86 versión 8.0.50727.762 y Windows 7 x64

Este caso es similar al ya conocido de Ableton Live, solo que con una versión distinta de las bibliotecas de Visual C++. FlexLMHostID es una herramienta que forma parte de la infraestructura de verificación de licencias FlexLM (Flex License Manager), usada por varios productos de software para evitar la proliferación de “copias piratas”. Un usuario pidió ayuda en un foro con relación a este programa.

Nota: algunos errores de configuración en paralelo presentan características comunes, de modo que suelen resolverse de forma similar. A veces el problema se complica y la solución inmediata no es eficaz o no puede aplicarse. Véase más información en Sxstrace y “la configuración en paralelo no es correcta” y en otras entradas del blog identificadas con la categoría WinSxS.

FlexLMHostID presenta una dependencia con los ensamblados Microsoft.VC80.CRT y Microsoft.VC80.MFC, de Visual C++ 2005.

INFORMACIÓN: analizando archivo de manifiesto C:\Users\Administrador\Downloads\FlexLMHostID (1).exe.
INFORMACIÓN: la identidad de definición del manifiesto es (null).
INFORMACIÓN: referencia: Microsoft.VC80.CRT, processorArchitecture=”x86″, publicKeyToken=”1fc8b3b9a1e18e3b”, type=”win32″, version=”8.0.50727.762″
INFORMACIÓN: referencia: Microsoft.VC80.MFC, processorArchitecture=”x86″, publicKeyToken=”1fc8b3b9a1e18e3b”, type=”win32″, version=”8.0.50727.762″

La versión solicitada 8.0.50727.762 corresponde al Service Pack 1 de Visual C++ 2005, con arquitectura de procesador x86.

INFORMACIÓN: resolviendo referencia Microsoft.VC80.CRT, processorArchitecture=”x86″, publicKeyToken=”1fc8b3b9a1e18e3b”, type=”win32″, version=”8.0.50727.762″.
(…)
INFORMACIÓN: resolviendo referencia de ProcessorArchitecture x86.
INFORMACIÓN: resolviendo referencia cultural Neutral.
INFORMACIÓN: aplicando directiva de enlace.
INFORMACIÓN: buscar directiva de edición en C:\Windows\WinSxS\manifests\x86_policy.8.0.microsoft.vc80.crt_ 1fc8b3b9a1e18e3b_8.0.50727.4940_none_516d712b0f495a45.manifest
INFORMACIÓN: versión de ensamblado redirigida por directiva de edición.
INFORMACIÓN: la identidad de la directiva de publicación es Microsoft.VC80.CRT, processorArchitecture=”x86″, publicKeyToken=”1fc8b3b9a1e18e3b”, type=”win32″, version=”8.0.50727.4940″.

La directiva de edición (publisher policy) redirigía automáticamente la versión 8.0.50727.762 de Microsoft.VC80.CRT a la 8.0.50727.4940, lo que permite deducir que el usuario estaba ejecutando Windows 7 con Service Pack 1. La versión 8.0.50727.4940 viene integrada en este sistema.

INFORMACIÓN: iniciar sondeo de ensamblado.
INFORMACIÓN: intento de sondear manifiesto en C:\Windows\WinSxS\manifests\x86_microsoft.vc80.crt_ 1fc8b3b9a1e18e3b_8.0.50727.4940_none_d08cc06a442b34fc.manifest.
INFORMACIÓN: manifiesto encontrado en C:\Windows\WinSxS\manifests\x86_microsoft.vc80.crt_ 1fc8b3b9a1e18e3b_8.0.50727.4940_none_d08cc06a442b34fc.manifest.
INFORMACIÓN: finalizar sondeo de ensamblado.

La traza de la infraestructura SxS dejó constancia de que el manifiesto asociado se encontró correctamente.

INFORMACIÓN: resolviendo referencia Microsoft.VC80.CRT.mui, language=”*”, processorArchitecture=”x86″, publicKeyToken=”1fc8b3b9a1e18e3b”, type=”win32″, version=”8.0.50727.4940″.
(…)
INFORMACIÓN: resolviendo referencia de ProcessorArchitecture x86.
INFORMACIÓN: resolviendo referencia cultural es-ES.
(…)
INFORMACIÓN: no se encontró el manifiesto de la referencia cultural es-ES.
INFORMACIÓN: finalizar sondeo de ensamblado.
INFORMACIÓN: resolviendo referencia cultural es.
(…)
INFORMACIÓN: no se encontró el manifiesto de la referencia cultural es.
INFORMACIÓN: finalizar sondeo de ensamblado.

La resolución de un ensamblado neutral puede dar lugar a la búsqueda automática de un ensamblado auxiliar dependiente del idioma. Este paso no se considera crítico, en el sentido de que no encontrar el ensamblado o el manifiesto no necesariamente ocasiona un error.

INFORMACIÓN: resolviendo referencia Microsoft.VC80.MFC, processorArchitecture=”x86″, publicKeyToken=”1fc8b3b9a1e18e3b”, type=”win32″, version=”8.0.50727.762″.
(…)
INFORMACIÓN: resolviendo referencia de ProcessorArchitecture x86.
INFORMACIÓN: resolviendo referencia cultural Neutral.
INFORMACIÓN: aplicando directiva de enlace.
INFORMACIÓN: buscar directiva de edición en C:\Windows\WinSxS\manifests\x86_policy.8.0.microsoft.vc80.mfc_ 1fc8b3b9a1e18e3b_8.0.50727.42_none_54c11df268b7c6d9.manifest
INFORMACIÓN: no se encuentra el redirección de la directiva de enlace.
INFORMACIÓN: iniciar sondeo de ensamblado.
INFORMACIÓN: no se encontró el ensamblado en WinSxS.

Aquí aparece una pequeña sorpresa con respecto al caso de Ableton Live. El número de versión 8.0.50727.42 está ligado a la publicación original RTM de Visual C++ 2005. El archivo de directiva hallado sugiere que el equipo sí tenía instaladas las bibliotecas de MFC, pero con un número de versión anterior al exigido. La versión 8.0.50727.762 no podía satisfacer el criterio de redirección de la directiva, por lo que el sistema continuó la búsqueda del ensamblado específico (no redirigido).

INFORMACIÓN: intento de sondear manifiesto en C:\Windows\assembly\GAC_32\Microsoft.VC80.MFC\ 8.0.50727.762__1fc8b3b9a1e18e3b\Microsoft.VC80.MFC.DLL.
INFORMACIÓN: intento de sondear manifiesto en C:\Users\Administrador\Downloads\Microsoft.VC80.MFC.DLL.
INFORMACIÓN: intento de sondear manifiesto en C:\Users\Administrador\Downloads\Microsoft.VC80.MFC.MANIFEST.
INFORMACIÓN: intento de sondear manifiesto en C:\Users\Administrador\Downloads\Microsoft.VC80.MFC\
Microsoft.VC80.MFC.DLL.
INFORMACIÓN: intento de sondear manifiesto en C:\Users\Administrador\Downloads\Microsoft.VC80.MFC\ Microsoft.VC80.MFC.MANIFEST.
INFORMACIÓN: no se encontró el manifiesto de la referencia cultural Neutral.
INFORMACIÓN: finalizar sondeo de ensamblado.
ERROR: no se puede resolver la referencia Microsoft.VC80.MFC, processorArchitecture=”x86″, publicKeyToken=”1fc8b3b9a1e18e3b”, type=”win32″, version=”8.0.50727.762″.
ERROR: error de generación de contexto de activación.
Finalizar generación de contexto de activación.

El ensamblado Microsoft.VC80.MFC no se encontraba en el almacén WinSxS, de modo que el sistema intentó hallarlo en el directorio de la aplicación, sin éxito. La solución consistió en instalar manualmente una versión adecuada de estas bibliotecas, aplicando el paquete de redistribución oportuno, ya fuera la versión 8.0.50727.762 correspondiente al Service Pack 1 de Visual C++ 2005 o una posterior. Este blog recoge una lista de números de versión de las bibliotecas de Visual C++ en Versiones conocidas de los componentes redistribuibles de Microsoft Visual C++ a partir de 2005.

La versión 8.0.50727.762 puede obtenerse en las páginas Microsoft Visual C++ 2005 SP1 Redistributable Package (x86) y Microsoft Visual C++ 2005 SP1 Redistributable Package (x64). Los paquetes vcredist_x86.exe son los únicos necesarios en Windows x86 de 32 bits. Con respecto a Windows x64 de 64 bits, las aplicaciones de 32 bits requieren los paquetes vcredist_x86.exe (sugeridos por el atributo processorArchitecture=”x86″) y las de 64 bits vcredist_x64.exe (processorArchitecture=”amd64″). Unos no sustituyen a los otros, lo más conveniente es instalar la misma versión de ambos.

De todos modos, en el momento de publicar esta entrada y debido a la presencia de vulnerabilidades, Windows Update sugerirá actualizar cualquier versión del paquete de redistribución de Visual C++ 2005 anterior a 8.0.50727.6195, siempre que se hayan autorizado las actualizaciones de otros productos de Microsoft distintos a Windows (Microsoft Update), por lo que comúnmente se aconseja instalar de forma directa esta versión sin pasar por otras previas: Actualización de seguridad de MFC para Microsoft Visual C++ 2005 Service Pack 1 Redistributable Package.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *