2011-09-27 18 views
7

Tengo una aplicación .net que usa algunos dlls Win32 compilados en vC++. Funciona muy bien en un Win de 32 bits, pero en 64 bits hay un problema: "No se puede cargar el DLL 'xyz': No se pudo encontrar el módulo especificado. (Excepción de HRESULT: 0x8007007E)"Dlls faltantes en 64 bit Win

Uso de walker de dependencias Me parece que se pierde los siguientes dlls: MSVCP100.DLL, MSVCR100.DLL, GDIPLUS.DLL, GPSVC.DLL, IESHIMS.DLL

¿Cómo puedo instalarlos en mi Win de 64 bits? ¿Dónde debería ponerlos? ¿Debo registrarlos? O...?

Nota: mi proyecto está compilado para la plataforma x86 y se ejecuta desde la carpeta Archivos de programa (x86) como una aplicación de 32 bits. Mis dlls se complementan como Win32 a través de Visual C++ en Visual Studio 2010.

Tenga en cuenta que es misión imposible obtener la versión 64 de mi dlls por otros motivos, por lo que no sería una solución.

Gracias!

+0

IESHIMS ha faltado en todos los proyectos que he compilado. No tengo idea por qué. – meawoppl

Respuesta

10

Todo el proceso debe ser de 32 o 64 bits. Si no puede compilar todas las bibliotecas de dependencias en 64 bits, debe ejecutar el proyecto .NET en 32 bits. Para hacer esto, cree la configuración x86 (por defecto es Cualquier CPU) y cree un proyecto .NET en esta configuración.

También necesita instalar el paquete redistribuible de VC++ 2010 en la computadora de destino, con el bitness correcto, en su caso - x86. Este paquete se puede descargar desde el sitio web de Microsoft.

Si su programa tiene un paquete de instalación, VC++ redistribuible debe agregarse como un único archivo o como módulos de combinación.

+0

Todo está construido como x86, no es un problema. Los problemas son estos dlls – Tom

+0

Gracias. VC++ 2010 paquete redistribuible ayudado. – Tom

2

Como se señaló ALex Farber, usted tiene que instalar algunos archivos DLL de tiempo de ejecución en la máquina objetivo: