web-dev-qa-db-fra.com

DLL n'a pas pu être exécuté pour les installateurs MSI

dll could not be run

Je devine que c'est un problème avec Windows Installer. J'ai essayé de redémarrer le service mais sans effet. Je ne parviens pas à installer quoi que ce soit qui se termine par . Msi . Parfois, je reçois un tel message d'erreur:

enter image description here

Journaux de l'observateur d'événements:

Installateur Python:

Produit: Python 2.7.3 - Erreur 1723. Il y a un problème avec ce package Windows Installer. Un DLL requis pour terminer cette installation n'a pas pu être exécuté. Contactez votre support technique ou le fournisseur de package. Action CheckDir, entrée: _CheckDir @ 4, bibliothèque: C:\Utilisateurs\x\AppData\Local\Temp\MSI570C.tmp

Installateur SSDLife:

Produit: SSDlife Pro - Erreur 1723. Il y a un problème avec ce package Windows Installer. Un DLL requis pour terminer cette installation n'a pas pu être exécuté. Contactez votre support technique ou le fournisseur de package. Action WIX_TestVersion, entrée: WIX_TestVersion, bibliothèque: C:\Utilisateurs\x\AppData\Local\Temp\MSIA32E.tmp

Recherche sur l'erreur 1723: Cette erreur peut se produire si vous avez une version obsolète de Windows Installer .

J'ai quelques liens pour Windows Installer, mais aucun d'eux n'a Windows 7 dans la liste des systèmes d'exploitation pris en charge.

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

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

Windows (7 x64) est à jour.

A également essayé cette correction: http://support.Microsoft.com/mats/Program_Install_and_Uninstall

Mais il n'a pas pu trouver de problèmes.

23
Kedar

J'ai rencontré ce problème aussi. La réponse d'Alexey Ivanov ne m'a pas vraiment aidée, mais elle m'a néanmoins incité à enquêter sur C:\Users\x\AppData\Local\Temp.

Comme d'habitude, les messages d'erreur n'étaient qu'à moitié utiles. Dans mon cas, la DLL ne manquait pas - , le programme d'installation ne disposait pas des autorisations nécessaires pour accéder au dossier . Je n'ai pas essayé d'exécuter le programme d'installation en tant qu'administrateur. Cela ne me semblait pas logique de penser que j'utilisais déjà un compte administrateur et que je m'attendais à ce que le contrôle de compte d'utilisateur gérera l'élévation de privilèges. Quoi qu'il en soit, comme beaucoup de choses dans Windows, tout cela est un mystère pour moi.

Néanmoins, après avoir accédé à Properties > Security dans le dossier C:\Users\x\AppData\Local\Temp et avoir donné à cette Everyone la permission Full control, les installateurs échouant auparavant fonctionnaient! Hourra! Étant donné que Everyone avait déjà les accès Read et Write, je soupçonne que Full control a également ajouté une autorisation Execute nécessaire.

Ce que je me demande maintenant, c’est comment cela s’est passé et quelles sont les autorisations appropriées sur ce répertoire.

26
Dmitry Minkovsky

Une solution de contournement simple consiste à exécuter la commande Shell en tant qu'administrateur (il suffit de rechercher cmd.exe, puis de cliquer avec le bouton droit de la souris sur> exécuter en tant qu'administrateur), puis d'aller à l'emplacement du package MSI et d'exécuter msiexec /i packagename.msi. Cela a fonctionné pour moi.

8
Marco Lanzetta

Il doit manquer une DLL requise à votre système.

Dans les deux cas que vous décrivez, Windows Installer a tenté d'exécuter une action personnalisée située dans une DLL. Ces fichiers .tmp: C:\Users\x\AppData\Local\Temp\MSI570C.tmp et C:\Users\x\AppData\Local\Temp\MSIA32E.tmp sont en réalité DLL fichiers extraits du fichier MSI.

Mais pour une raison quelconque, la DLL n'a pas été chargée.

Le plus important est de savoir quel DLL est manquant. Pendant que le message d'erreur est à l'écran, accédez à votre répertoire temporaire et voyez si le fichier temp DLL existe toujours. Si c'est le cas, copiez-le avec l'extension DLL. Ensuite, pour savoir lequel DLL des fichiers requis est manquant, vous pouvez utiliser l'utilitaire depends.exe de Visual Studio.

Si le fichier temporaire est déjà supprimé, le seul moyen d'obtenir le DLL consiste à l'extraire du package à partir de la table Binary . .

J'ai deux candidats possibles les plus probables: le runtime Visual C++ est manquant ou le runtime .Net est manquant. Cependant, c'est juste une supposition…

1
Alexey Ivanov

J'ai essayé ce que Dimadima avait suggéré mais j'avais toujours un petit problème d'accès. J'ai déterré un outil pour Win 7/Vista appelé prendre possession. Il ajoute un menu contextuel au clic droit et vous pouvez "prendre possession". Je pensais que le faire fonctionner comme un charme.

http://www.howtogeek.com/howto/windows-Vista/add-take-ownership-to-Explorer-right-click-menu-in-Vista/

0
Jarmerson