Fix The Program Can't Start Because MSVCR100D.dll Is Missing From Your Computer.
I had to reinstall Windows 7 on a different hard drive on my computer after the root drive crashed the other day. That meant a lot of re-installations of software, and sometimes error messages when a particular runtime or program was not installed on the system. Today I tried to run a program which failed to do so. It threw the error "The program can't start because MSVCR100D.dll is missing from your computer. Try reinstalling to fix this problem".
Reinstalling obviously did not fix it. The strange thing was that the program installer recognized that Microsoft Visual C++ 2010 runtime libraries were missing, but the installation it launched to correct the issue did not correct the error when I tried to start the program after installation.
First thing I did was to check if the msvcr100d.dll file was actually copied to a system folder during installation of the runtime. Turned out, the file was nowhere to be seen, only the msvcr100.dll file was copied into the Windows system32 folder.
After some checking around I found out that the d at the end stands for debug version. I then checked the runtime installer file by extracting its contents on my computer, only to find out that msvcr100d.dll was not included in the setup file.
I'm not 100% sure about this but it seems as if the application developer made an error by making the program file that is requiring the debug dll depend on it. If that is correct, it could be that the msvcr100d.dll is only distributed with Visual Studio, and not the runtime libraries.
I fixed the issue by downloading the dll from a third party dll repository (make sure to select download zip-file on the page). I then extracted the dll directly into the program directly, and lo and behold, the program worked afterwards.
You can alternatively place it into your system32 folder, but I personally prefer it in the application folder to avoid issues with other programs. It is also easier to delete the file when the software gets uninstalled.
That got me thinking. Do you know of any repository on the Internet where you can look up file names and how they are distributed?
Advertisement
It’s helped….
simply thanks…
Keep it up…
Also note that instead of extracting this to the SYSTEM32 folder, you want to extract it to the folder of the application that needs it. Why? Because a later application install may over-write the one in the SYSTEM32 directory, perhaps with an older copy… OR the application may be sensitive to the exact DLL version. Although the major versions of the DLL have different names, Service Packs share the same name as their predecessor. So, you end up in ‘DLL Hell’, which is what Microsoft tried to solve with WFP and SFC (largely successful).
Microsoft themselves used to run such a website for their own products called DLL Help. You could feed it any filename and it’d tell you all the publicly released versions and some products that shipped them. They took it offline about 2 years ago.
@Jeremy Collake: I doubt that MS ships a redistributable version of the debug runtime libraries. The only “correct” way to obtain them would probably be to install an MS development environment on your system. This is almost certainly a case where the software vendor flat out screwed up and needs to rebuild their software properly.
Indeed, you may be right Anthony. The developer here did screw up, unless this is a debug version of their software. Still, I don’t see why Microsoft wouldn’t make this runtime DLL available as well. Heck, they even have a *public* Symbol Server that will serve up debug symbols for any system DLL — so surely they have it somewhere, or they ought to. If all else fails, ANY VC++ developer can give you a copy. I wouldn’t trust the sites that proclaim to solve such errors, there are just too many scams. Note that if all else fails, the Platform SDK will probably include the debug DLL.
@ Jeremy Collake thank you for that useful tip about the D on the end being the debug version – may come in useful in the future.
@Martin Brinkmann
Lets hope we’ll find more repositories that are safe!
“reinstall Windows 7 on a different hard drive ” ?
Never heard of image backup ? fail.
Coincidentally I also had to reinstall Win 7 yesterday (MBR/BCD corruption that couldn’t be fixed with bootrec/fixmbr etc from the recovery command prompt). Luckily I had a recent backup including system image. Or so I thought.
I had used the built-in Win 7 backup utility and when the external backup HDD was accessed using Win 7 Pro installation DVD I got all kinds of error messages and codes like invalid image, then source – destination media defective (chkdsk showed no errors) and further restore attempts came up with same failure messages. Spent half the night trying (and googling from another computer) around with no joy.
Booting into a live Linux CD showed both disks were ok and I could access all backup files. So I was forced to reinstall system. Then used backup to transfer documents and applications to new partitions.
So the moral of this story is a) Windows backup sucks and I’ll NEVER trust it again. b) It can happen that you need to reinstall even with a recent image backup.
I never used Windows backup. For the last years I use Acronis. I make 2 full image backup each month, keeping 2 generations, on 2 external hard drives.
There are LOTS of fake repositories for such files, most are scam sites that will infest you.
What you are missing here, as you discovered, is the Windows Visual C++ Runtime Library v10.0 (Visual Studio 2011) DLL — supposed to be distributed with any application that dynamically links with it.
You can get this *directly* from Microsoft, which is obviously the BEST, and SAFEST place to retrieve it from:
x86: http://www.microsoft.com/download/en/details.aspx?id=5555
x64: http://www.microsoft.com/download/en/details.aspx?id=14632
Google “msvc runtime redistributables” for these links.
I tried that but the file was not installed on my system, only the file without the “d” in the name was. I also tried finding an official installer that would but came up empty handed. But I only looked for it for about five minutes.
Ah, I should have mentioned — the ‘D’ at the end of the DLL basename indicates it is the DEBUG version of the VC++ runtime library. So, the above links may or may not include it. If they don’t, another link *at Microsoft* will.
Regardless of where you end up getting the replacement, at least MAKE SURE it is digitally signed by Microsoft.