ERROR_SXS_ASSEMBLY_MISSING (0x00003701) — Fix the missing assembly error
This pops up when Windows can't load a side-by-side assembly. Usually means a missing VC++ runtime or corrupt manifest.
You're trying to launch an older app — maybe QuickBooks 2018, a legacy CAD tool, or some custom LOB software from 2015 — and boom, you get the error: ERROR_SXS_ASSEMBLY_MISSING (0x00003701). The exact message varies but it'll mention something like "The referenced assembly could not be found." I've seen this most often right after a Windows feature update or when someone copied an app from an old machine without grabbing the required runtimes.
What's actually happening is Windows uses a side-by-side (SxS) assembly system to manage DLL hell. The app's manifest file says "I need version 12.0.40660.0 of the Microsoft.VC90.CRT assembly" but Windows can't find that exact version anywhere in the C:\Windows\WinSxS folder. Either the runtime was never installed, or a newer update superseded it and the app's manifest is too picky.
Had a client last month whose entire print queue died because a print driver installer threw this error. Took me 15 minutes to find the missing VC++ 2005 redistributable. Here's the fix.
Step 1: Identify the missing assembly
First, we need to know exactly which assembly is missing. Open Event Viewer (press Win + R, type eventvwr.msc, hit Enter). Go to Windows Logs > Application. Look for an Error event with Source: SideBySide. Double-click it.
You'll see something like:
Activation context generation failed for "C:\Program Files\OldApp\app.exe".
Dependent Assembly Microsoft.VC90.CRT,processorArchitecture="x86",publicKeyToken="1fc8b3b9a1e18e3b",type="win32",version="9.0.21022.8" could not be found.
Write down the assembly name, version, and architecture — that's your target. The most common culprits are VC++ redistributables (VC90, VC100, VC110, VC120, VC140, VC141).
Step 2: Install the right redistributable
If it's a Visual C++ runtime, go straight to Microsoft's download center. Don't use third-party sites — they're full of bundles and crapware.
- VC90 (VS 2008): Download the Visual C++ 2008 Redistributable. Make sure you grab both x86 and x64 if your system is 64-bit.
- VC100 (VS 2010): VC++ 2010 Redistributable
- VC110 (VS 2012): VC++ 2012 Redistributable
- VC120 (VS 2013): VC++ 2013 Redistributable
- VC140/VC141 (VS 2015-2019): Combined VC++ 2015-2022 Redistributable
Install the version that matches the event log. Reboot after installing — sometimes the SxS cache doesn't update without one.
Step 3: If it's not a VC++ assembly (rare but happens)
Some apps ship their own manifests pointing to a specific assembly that's not a standard runtime. In that case, you might need to find the exact assembly from the original app installer or reinstall the app completely.
I've also seen this with Microsoft .NET Framework assemblies. If the event log mentions System.Runtime or System.Core, run the .NET Framework Repair Tool from Microsoft, or enable .NET 3.5 in Windows Features (some older apps need 2.0/3.0).
Step 4: Check the manifest file itself (if still failing)
Maybe the manifest is corrupt or pointing to a non-existent version. Right-click the app's .exe, choose Properties, look for a Manifest tab (or open the .exe in Notepad and search for <assemblyIdentity>). If you find a manifest with weird version numbers like 5.1.2600.0 (that's Windows XP era), the app was built for an ancient runtime. Try running it in compatibility mode for Windows 7 or even XP SP3.
Step 5: Last resort — sfc /scannow and dism
If you're still stuck, some system files might be corrupt. Open an admin Command Prompt and run:
dism /online /cleanup-image /restorehealth
sfc /scannow
Reboot. This fixes corrupt SxS store files. It's rare but when it works, you'll wonder why you didn't do it sooner.
What to check if it still fails
- Windows Feature Updates: Some updates remove old runtimes. Reinstall the redist after the update.
- Antivirus blocking: Trend Micro and McAfee have been known to quarantine legitimate assemblies. Check quarantine logs.
- Missing Windows Updates: Install the latest cumulative update and any optional updates for the .NET Framework.
- Corrupt app install: Sometimes the app's own files are damaged. Uninstall completely, delete leftover folders in Program Files and AppData, then reinstall.
90% of the time, a missing VC++ redist is the problem. The rest is either a corrupt manifest or a Windows update that nuked the runtime. You'll save yourself hours if you check Event Viewer first — it tells you exactly what's missing.
Was this solution helpful?