No se pudo ejecutar DLL para instaladores MSI

23

dll no se pudo ejecutar

Supongo que es un problema con Windows Installer. Intenté reiniciar el servicio pero no lo logré. No puedo instalar nada que termine con .msi . A veces recibo un mensaje de error de este tipo:

ingrese la descripción de la imagen aquí

Visor de eventos de registros:

Instalador de Python:

Producto: Python 2.7.3 - Error 1723. Hay un problema con este paquete de Windows Installer. No se pudo ejecutar una DLL requerida para completar esta instalación. Póngase en contacto con el personal de soporte técnico o el proveedor del paquete. Action CheckDir, entrada: _CheckDir @ 4, biblioteca: C: \ Users \ x \ AppData \ Local \ Temp \ MSI570C.tmp

Instalador SSDLife:

Producto: SSDlife Pro - Error 1723. Hay un problema con este paquete de Windows Installer. No se pudo ejecutar una DLL requerida para completar esta instalación. Póngase en contacto con el personal de soporte técnico o el proveedor del paquete. Acción WIX_TestVersion, entrada: WIX_TestVersion, biblioteca: C: \ Users \ x \ AppData \ Local \ Temp \ MSIA32E.tmp

Buscando el error 1723: este error puede ocurrir si tiene una versión desactualizada de Windows Installer

Obtuve un par de enlaces para Windows Installer, pero ninguno de ellos tiene Windows 7 en la lista de sistemas operativos compatibles.

https://www.microsoft.com/en-us/download/details.aspx?id=25 y

https://www.microsoft.com/en-us/download/details.aspx?id=8483&WT.mc_id=MSCOM_EN_US_DLC_DETAILS_131Z4ENUS22007

Windows (7 x64) está actualizado.

También probé este Fixit: http://support.microsoft.com/mats/Program_Install_and_Uninstall

Pero no pudo encontrar ningún problema.

Kedar
fuente
@Serge sí, avast, trató de deshabilitar y ejecutar el instalador en este momento, pero no parece ayudar
Kedar
limpie su carpeta temporal e intente nuevamente.
Moab
@Moab no, eso no ayuda
Kedar
Especifique el sistema operativo donde observa el problema.
Alexey Ivanov
@Moab todos ellos
Kedar

Respuestas:

26

También me encontré con este problema. La respuesta de Alexey Ivanov no me ayudó mucho, pero sí me inspiró a investigar C:\Users\x\AppData\Local\Temp.

Como de costumbre, los mensajes de error fueron solo medio útiles. En mi caso, no faltaba la DLL: el instalador no tenía permisos para acceder a la carpeta . No intenté ejecutar el instalador como administrador; esto no tenía sentido para mí, ya que estaba usando una cuenta de administrador y esperaba que UAC manejara la elevación de privilegios. De todos modos, como muchas cosas en Windows, todo esto es un misterio para mí.

Sin embargo, después de ir a Properties > Securityla C:\Users\x\AppData\Local\Tempcarpeta y dar que Everyoneel Full controlpermiso, los instaladores que anterior había estado fallando ahora funcionado! ¡Hurra! Puesto que Everyoneya tenía Ready Writeel acceso, sospecho que Full controltambién agregó una condición necesaria Executeautorización.

Lo que me pregunto, ahora, es cómo sucedió esto en primer lugar, y cuáles son los permisos correctos en este directorio.

Dmitry Minkovsky
fuente
1
¡Esto resuelve mi problema! Pero creo que es un problema de seguridad dar a 'Todos' acceso completo a la carpeta temporal de un usuario. Me acabo de otorgar acceso completo y eso funciona. Por defecto, el directorio solo tenía 'Permisos especiales' para el usuario.
Kedar
Sí, eso tiene más sentido que dar permiso a Everyone:-). De todos modos, me pregunto cuál puede ser la causa subyacente de este problema. Estaba teniendo problemas con varios instaladores, incluido el instalador de iTunes, ¡un instalador muy popular! Me pregunto qué pasó que rompió los permisos en ese directorio.
Dmitry Minkovsky
Verifiqué otras cuentas limitadas / administrativas en la misma máquina y todas parecen tener los permisos configurados correctamente.
Kedar
Esto no funcionó para mí (Windows 7, 32 bits). Esto hizo . Mi error, sin embargo, fue "Hay un problema con este paquete de Windows Installer. Un programa ejecutado como parte de la configuración no finalizó como se esperaba. Póngase en contacto con su personal de soporte o proveedor de paquetes".
aliteralmind
Esto no funcionó para mí, aunque los síntomas fueron similares. Resultó ser una instalación PIP conflictiva. Esto me arregló: stackoverflow.com/a/23350061/797945
Jagu
8

Una solución simple es ejecutar el shell de comandos como administrador (solo busque cmd.exe y luego haga clic derecho-> ejecutar como administrador), y luego vaya a la ubicación del paquete MSI y ejecute msiexec /i packagename.msi. Funcionó para mi.

Marco Lanzetta
fuente
1
No es una solución alternativa (no instala todo el software correctamente) y no funciona (para este problema específico)
Kedar
Un pequeño error: aquí está el comando correctomsiexec /i packagename.msi
Esta solución funciona perfectamente y es mejor que otorgar permisos completos de la carpeta Temp a todos solo por un instalador. (Asegúrese de leer el segundo comentario para la sintaxis correcta.)
Gaurav Kumar
+1 Esta solución también debe incluirse en la respuesta elegida anteriormente. Esa respuesta elegida debería ser el último recurso de todos.
tom_mai78101
1

A su sistema le debe faltar una DLL requerida.

En los dos casos que describe, Windows Installer intentó ejecutar una acción personalizada ubicada en un archivo DLL. Esos archivos .tmp: C:\Users\x\AppData\Local\Temp\MSI570C.tmpy C:\Users\x\AppData\Local\Temp\MSIA32E.tmpson realmente archivos DLL extraídos del MSI.

Pero por alguna razón no pudo cargar la DLL.

Lo más importante es averiguar qué DLL falta. Mientras el mensaje de error está en la pantalla, vaya a su directorio temporal y vea si el archivo DLL temporal todavía existe. Si está allí, cópielo con la extensión DLL. Luego, para averiguar qué DLL de los requeridos falta, puede usar la depends.exeutilidad de Visual Studio.

Si el archivo temporal ya está eliminado, la única forma de obtener el archivo DLL es extraerlo del paquete, de la Binarytabla.

Tengo dos posibles candidatos más probables: falta el tiempo de ejecución de Visual C ++ o falta el tiempo de ejecución de .Net. Sin embargo, es solo una suposición ...

Alexey Ivanov
fuente
Solo veo el registro de errores que se crea en el directorio temporal. Nada más. Pero al buscar la extracción de archivos del instalador, probé el comando msiexec para extraer Python y todos los archivos ahora están disponibles, ya que estarían en una instalación normal. Excepto que no veo ninguna entrada en la lista de software instalado. Al agregar python a la ruta, funciona como se esperaba ...
Kedar
1
Supongo que sucede demasiado rápido para darse cuenta. Sí, puede extraer archivos del paquete de Windows Installer, pero no realizará el registro del programa porque el producto no está instalado (desde el punto de vista de MSI). Estos archivos DLL tmp no forman parte de la imagen de instalación, son ayudantes que se ejecutan durante la instalación. Para obtenerlo, puede usar la herramienta Orca o descompilar el msi con WiX; Sin embargo, ya tienes Python.
Alexey Ivanov
Creo que puedo vivir sin tener el software registrado. Comando completo: msiexec / a python.msi / qb TARGETDIR = "C: \ install_path"
Kedar
@ 101 Si es el caso, entonces el instalador está dañado, quiero decir que es un error: el instalador no debe depender de software adicional, incluido el tiempo de ejecución de MSVC; debe ser autónomo. Si necesita MSVC 2008 o 2010, estos paquetes deben instalarse junto con el producto (incluido en el propio instalador).
Alexey Ivanov
-1

Ninguna de estas soluciones funcionó para mí, sin embargo, cuando fui directamente a la carpeta de descarga, hice clic con el botón derecho en el icono de la instalación que quería realizar e hice clic en "Ejecutar como administrador" que se instaló sin más mensajes de error.

girlymomma88
fuente
Los instaladores de MSI no tienen esa opción.
Kedar