Tuesday, August 26, 2014

Msvcp90.dll is missing error

At my work I have experienced this error on various machines, and it can be very frustrating.  We have programs that run at logon that fail to run due to this error.


With some testing I found that this error only occurs if our Antivirus software is installed (Symantec Endpoint Protection).  If I uninstall Symantec, reboot the computer, our startup programs execute fine and no msvcp90.dll error appears.


Googling for help on this has been no help.  Most sites suggest that the file is missing, corrupt, you have a virus, a hardware malfunction, etc.  That is not the case in my experience.  It seems to be more of an interference created by another software, always antivirus software in my experience.  It is possible that my solution is not for you, and you do have file corruption, or maybe you do not have the C++ runtime installed, or installed correctly.  The problem I am describing usually appears on a computer that was functioning normally and that after software installation, this error appears.


I have finally found some fixes/workarounds for this problem. If you are experiencing the problem in a manner similar to what I have described you can try these troubleshooting steps yourself.  I cannot guarantee this solution will work for you, but if your symptoms match mine, it very well may work.


Fix Procedure 1
  1. Be logged onto your computer as an Administrator.  Many of you will have systems that use 'User Account Control'.  This is the prompt you have to agree to every time you try to do something that requires admin.  If that is the case, make sure you always start the programs I say to use by right clicking the program and choosing 'Run as Administrator'. This is a very important step to remember.
  2. Open a command prompt.  I suggest going to Start>All Programs>Accessories>right click on Command Prompt and choose 'Run as Administrator'
  3. At the prompt type: wbemtest and hit Enter key.
  4. The Windows Management Instrumentation Tester window will appear.
  5. Click Connect button
  6. In the Namespace box replace 'root\cmv2' with 'root\securitycenter' and click the Connect button.
  7. Click the Enum Classes button, leave the 'Enter a superclass name' box empty and click OK.
  8. On the Query Result screen, highlight AntivirusProduct and click the Delete button.
  9. Close the Query window and exit wbemtest
  10. Uninstall your antivirus software, reboot, and reinstall your antivirus software
Fix Procedure 2
  1. Place these three files (download is a .zip) in the same folder as the .exe that is throwing the error message. Click the link to download a .zip containing the three files.  Extract them.  Copy and paste the into the directory of the program's exe.
Possible Fix 3
  1. I am unable to test this right now but this might work. On a 32-bit OS, download this zip, extract the files, and copy/paste them into the C:\Windows\System32 folder.  On a 64-bit OS you may need to paste them both in C:\Windows\System32 and C:\Windows\SysWOW64 folders. 
A great way to observe this issue is use Procmon by Sysinternals.  Run Procmon, and then run the program that causes the error.  Once the error has appeared, stop Procmon.  Now filter on the process name.  You can see in the output where the process is trying to locate the .dll.  After employing one of the workarounds above, you can re-run the Procmon test and see how the program finds the .dll.

Hopefully, you no longer have the Msvcp90.dll error is missing issue.