MSEndpointMgr
how to fix the additional dll couldn 39-t be loaded

Many "additional DLLs" belong to runtime environments, especially Microsoft Visual C++ Redistributables and DirectX. For instance, MSVCP140.dll or VCRUNTIME140.dll errors indicate missing C++ runtimes. The solution is to download and install the latest Visual C++ Redistributable for Visual Studio (both x86 and x64 versions). Similarly, if the missing DLL relates to graphics or audio (e.g., X3DAudio1_7.dll ), running the DirectX End-User Runtime Web Installer will restore legacy DirectX components. Importantly, install all redistributables—even older versions—since different applications link to specific versions.

Finally, consider that the "additional DLL" might be from a 32-bit application trying to load a 64-bit DLL, or vice versa. Use a tool like Process Monitor from Sysinternals to filter for "Name Not Found" or "Image Integrity" errors. If you see a BAD_EXE_FORMAT error, you have a bitness mismatch. Resolve by obtaining the correct architecture version. Additionally, some DLLs depend on older .NET Frameworks or the msvcrt.dll from specific Windows versions. Enable .NET Framework 3.5 (includes 2.0 and 3.0) via Windows Features, and install legacy components like Microsoft Visual C++ 2005-2008 redistributables, which are often neglected on new systems.

"The additional DLL could not be loaded" is rarely a single-cause error. It can stem from a missing file, an absent runtime, a path misconfiguration, security overreach, system corruption, or architecture mismatch. By following a layered diagnostic strategy—starting with file verification, then runtimes, dependency analysis, permissions, system repair, and finally legacy component installation—most users can resolve the issue without resorting to a full OS reinstallation. Understanding that DLLs are simply shared code libraries with strict loading rules transforms this cryptic error into a solvable puzzle. Patience and systematic execution of these steps will restore application functionality and reinforce the user’s troubleshooting competence.

The error message "The additional DLL could not be loaded" is a frustrating but common obstacle for Windows users, frequently appearing when launching video games, professional software (like AutoCAD or Adobe Suite), or custom-developed applications. At its core, this error indicates that a program has successfully started but cannot locate or utilize an auxiliary Dynamic Link Library (DLL) file necessary for a specific function. Resolving this issue requires a methodical approach, moving from basic dependency checks to advanced system repairs. The solution lies in verifying file integrity, addressing runtime environments, and correcting system pathing or security restrictions.

The most immediate cause is a missing or corrupted DLL. Unlike core system DLLs (e.g., kernel32.dll ), an "additional" DLL is often shipped with the application or a third-party component. The first diagnostic step is to reinstall the offending application. If the error persists, download the specific DLL from a trusted source (never from generic "DLL download" sites, which risk malware). Instead, obtain it from the original software vendor, an official GitHub repository, or a secondary installation of the same software. Once obtained, place the DLL in the application’s root directory or the correct system folder ( C:\Windows\System32 for 64-bit DLLs or SysWOW64 for 32-bit). After placement, run regsvr32 filename.dll from an elevated Command Prompt to register it in the Windows Registry.

Modern security software frequently quarantines or blocks "additional DLLs" that it misidentifies as suspicious. Check your antivirus quarantine log and restore the flagged DLL, then add the application’s entire folder to the antivirus exclusion list. Furthermore, the DLL may fail to load if the user account lacks execute permissions. Navigate to the DLL file, right-click → Properties → Security, and ensure that SYSTEM , Administrators , and your user account have Read & Execute permission. Running the application as an administrator can also bypass User Account Control (UAC) restrictions that prevent loading from non-standard directories.

If the above steps fail, underlying Windows corruption may be at fault. Open Command Prompt as an administrator and run sfc /scannow (System File Checker) to repair protected system files. Follow this with DISM /Online /Cleanup-Image /RestoreHealth to fix the component store. Additionally, corrupted Windows Registry entries for DLL registration can be reset. Use a reputable registry cleaner sparingly, or manually search for orphaned DLL entries under HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\SharedDLLs . A more drastic but often effective step is performing an in-place upgrade (keeping apps and files) using the Windows Media Creation Tool, which refreshes all system components without erasing personal data.

Sometimes the DLL exists but is invisible to the application due to incorrect search order. Windows searches for DLLs in this order: application directory → system folders → directories in the PATH environment variable → the current working directory. Use Dependency Walker (or the modern Dependencies tool) to open the main executable. This tool graphically reveals which DLLs fail to load. If a dependency points to a relative path (e.g., ..\lib\missing.dll ), you may need to adjust the application’s working directory or create a symbolic link. Additionally, ensure there is no "DLL redirection" via a .local file or manifest that forces the app to look in the wrong place.

13 comments

  • Hello,

    We followed your guide to the letter on a 2016 and 2019 server but we keep running into the problem that the SCEP application pool keeps crashing for no real reason. We already ruled out a mistake in the templates or wrong CA certs in the intermediate.
    We can see the Cert requests arrive but IIS dies everytime we see this in the NDES log:

    NDES COnnector:
    Sending request to certificate registration point. NDESPlugin 18-4-2019 17:04:05 3036 (0x0BDC)

    Event viewer just shows us that w3wp.exe has crashed and that the faulty module is ntdll.dll.

    We’ve been banging our heads against this problem for a week now so we hope you have any idea where to look.

    Regards,
    Herman

  • Nick, your stuff is amazing as always! .NET 3.5 appears to be required, so may be worth mentioning somewhere since some installations will need to specify an alternate path for that.

    Using your script, I was failing on “Attempting to install Windows feature: Web-Asp-Net” and it wasn’t until I manually added 3.5–specifying the alternate path to the Server installation media–that I could continue.

  • Does this work for Android for Work or Android Enterprise devices? I can’t find the certificate issued to the end mobile devices even – iOS?

  • Hey Nickolay,

    there are two mistakes in your two pictures showing the configuration of the AAP. In the internal URL field you have to write https instead of http, because of the later binding / requiring of SSL. Your other older posts showing this also with https configured.

    Best regards and nice work!,
    Philipp

    • I’ve wasted way too much time troubleshooting this before I checked the IIS log files and they showed port 80. After changing AAD Proxy to HTTPS everything works.

      Great guide though!

  • It appears that the script is expecting to find only 1 client authentication certificate with the specified subject. Could you modify it to handle cases where there are multiple certificates with the same subject?

  • Hello – Is there a mistake with the steps regarding the client and server certificates? At first you emphasized the points of each type which in turn have different Extended Key Usages. Are you stating to use the same template that contains both types?

  • Awesome step by step guide, many thanks. As per usual the MS TechNet lacks a lot of steps and inside information. Regarding the two certs, can they also be 3rd party and trusted certs (wildcard) ?

Sponsors

Categories

MSEndpointMgr.com use cookies to ensure that we give you the best experience on our website.