blog

The program can’t start because mfc120ud.dll is missing from your computer

We hit this while using Remote Desktop Manager tooling without a full installer. The application started, but one feature failed with a DLL error saying that mfc120ud.dll was missing.

At first glance, this looks like a normal Visual C++ Redistributable problem. Sometimes it is. But the exact DLL name matters more than people think.

Why the filename matters

There is a big difference between:

  • mfc120u.dll
  • mfc120ud.dll

That trailing d usually indicates a debug build dependency, not the normal release runtime that end users are expected to install.

So if the real missing file is mfc120ud.dll, the problem may not simply be "this machine needs the redistributable." It may mean the application was built against a debug MFC runtime, which is not the normal deployment target for production machines.

What usually helps

If the application actually needs the normal Visual C++ 2013 release runtime, installing the matching Microsoft redistributable can solve the issue.

That is the common fix for applications that depend on the standard Visual Studio 2013 runtime libraries.

What usually does not help

If the error genuinely points to mfc120ud.dll, installing ordinary redistributables may still leave you stuck.

Why? Because Microsoft distinguishes between:

  • supported redistributable release runtimes
  • debug DLLs used for development and testing

That means an end-user machine missing a debug DLL often points back to the application package or build process, not just to a missing prerequisite on the server or workstation.

Practical takeaway

If you see this error:

  1. verify the exact missing file name
  2. if it is the release runtime, install the correct Visual C++ redistributable version
  3. if it is the debug runtime, ask the vendor or developer for a proper release build instead of trying to paper over the problem

That last step is the important one. A lot of time gets wasted when admins treat every missing VC++ DLL as "install all redistributables and hope."

Current note

Microsoft still recommends using the appropriate Visual C++ Redistributable for release builds, and they also document that debug versions of the Visual C++ runtime libraries are not redistributable.

So the modern version of this advice is more precise than the original post:

  • missing release runtime DLLs often mean you need the matching redistributable
  • missing debug runtime DLLs usually mean the application was packaged or built incorrectly for end-user deployment