DLL could not be run for MSI installers

dll could not be run

I'm guessing its a problem with Windows Installer. I've tried restarting the service but to no effect. I'm not able to install anything that ends with .msi. Sometimes I get such an error message:

enter image description here

Event viewer logs:

Python installer:

Product: Python 2.7.3 -- Error 1723. There is a problem with this Windows Installer package. A DLL required for this install to complete could not be run. Contact your support personnel or package vendor. Action CheckDir, entry: _CheckDir@4, library: C:\Users\x\AppData\Local\Temp\MSI570C.tmp

SSDLife installer:

Product: SSDlife Pro -- Error 1723. There is a problem with this Windows Installer package. A DLL required for this install to complete could not be run. Contact your support personnel or package vendor. Action WIX_TestVersion, entry: WIX_TestVersion, library: C:\Users\x\AppData\Local\Temp\MSIA32E.tmp

Searching on error 1723: This error can occur if you have an out-of-date version of Windows Installer

I got a couple of links for Windows Installer but neither of them has Windows 7 on the list of supported operating systems.

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

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

Windows(7 x64) is up to date.

Also tried this Fixit: http://support.microsoft.com/mats/Program_Install_and_Uninstall

But it couldn't find any issues.


Solution 1:

I ran into this issue, too. Alexey Ivanov's response didn't quite help me, but it did, however, inspire me to investigate C:\Users\x\AppData\Local\Temp.

As usual, error messages were only half-useful. In my case, the DLL wasn't missing--the installer didn't have permissions to access the folder. I didn't try running the installer as an administrator--this didn't make sense to me considering I was already using an admin account and would have expected UAC to handle privileges elevation. Anyway, like many things in Windows, this whole thing is a bit of a mystery to me.

Nevertheless, after going to Properties > Security on the C:\Users\x\AppData\Local\Temp folder and giving that Everyone the Full control permission, installers that previous had been failing now worked! Hooray! Since Everyone already had Read and Write access, I suspect that Full control also added a necessary Execute permission.

What I wonder, now, is how this happened in the first place, and what the correct permissions on this directory are supposed to be.

Solution 2:

A simple workaround is to run the command shell as administrator (just search cmd.exe and then right click-> run as administrator), and then go to location of the MSI package and run msiexec /i packagename.msi. It worked for me.

Solution 3:

Your system must be missing a required DLL.

In both cases you describe, Windows Installer tried to execute a custom action located in a DLL. Those .tmp files: C:\Users\x\AppData\Local\Temp\MSI570C.tmp and C:\Users\x\AppData\Local\Temp\MSIA32E.tmp are really DLL files extracted from the MSI.

But for some reason it failed to load the DLL.

The most important thing is to find out which DLL is missing. While the error message is on screen, go to your temp directory and see if the temp DLL file still exists. If it is there, copy it with DLL extension. Then to find out which DLL of the required ones is missing, you can use depends.exe utility from Visual Studio.

If the temp file is already removed, the only way to get the DLL is to extract it from the package, from Binary table.

I have two most probable possible candidates: Visual C++ runtime is missing or .Net runtime is missing. However, it's just a guess…