When does this error pop up?
You double-click an app — maybe an old CAD viewer or a custom .NET 3.5 tool — and instead of launching, you get a dialog:
The application has failed to start because its side-by-side configuration is incorrect.
Check Event Viewer under Windows Logs > Application, and you'll see Event ID 33 with source SideBySide and description containing 0x000036F9 and the phrase missing equal sign. It happens right at startup, on Windows 10 22H2 or Windows 11 23H2, before any window appears.
What's actually happening here?
Every Windows app compiled with Visual C++ 2005–2013 has a manifest — an XML blob embedded in the .exe or sitting next to it as a .manifest file. This manifest tells Windows which DLL versions to load (the CRT, MFC, etc.). The XML parser in sxs.dll reads the manifest to set up the activation context.
When the parser hits an attribute that's missing its equals sign, like:
<assemblyIdentity name"MyApp" version="1.0.0.0" />
…notice name"MyApp" instead of name="MyApp". The parser sees name"MyApp" as a malformed token, can't figure out what's the attribute name vs. value, and throws ERROR_SXS_XML_E_MISSINGEQUALS (0x000036F9).
This is almost always caused by a corrupt or hand-edited manifest file. A hex editor or a sloppy text editor that doesn't handle Unicode BOMs correctly can strip a single character, shifting the XML into invalid territory.
How to fix it — real steps
Skip reinstalling Visual C++ redistributables; that won't help because the problem is in the app's own manifest, not the system DLLs. Here's the exact fix:
Step 1: Run sxstrace to locate the culprit
Open a command prompt as administrator. sxstrace logs all side-by-side activity.
sxstrace Trace -logfile:C:\sxs_trace.etl
Now launch the failing app. It'll error out as usual.
Stop the trace:
sxstrace Parse -logfile:C:\sxs_trace.etl -outfile:C:\sxs_trace.txt
Open that text file. Look for a line that says ERROR: Parsing ... and shows the exact path to the manifest file — either a .manifest file in the same folder as the .exe, or the path resource #1 indicating an embedded manifest inside the .exe itself.
Step 2: Examine the manifest
If it's an external .manifest file, open it in Notepad++ (not regular Notepad) with Encoding > UTF-8 without BOM. Look for any attribute that's missing the = sign. A common one I've seen:
<assemblyIdentity name"MyApplication" processorArchitecture="x86" version="1.0.0.0" />
The fix: change name"MyApplication" to name="MyApplication".
If the manifest is embedded, you need to extract it. Use Resource Hacker or the mt.exe tool from the Windows SDK:
mt.exe -inputresource:C:\path\to\app.exe;#1 -out:C:\extracted_manifest.xml
Step 3: Fix and re-embed
Edit the extracted manifest the same way — find the missing equals sign and add it back. Save the file as UTF-8 without BOM.
Re-embed it with mt.exe:
mt.exe -manifest C:\extracted_manifest.xml -outputresource:C:\path\to\app.exe;#1
Step 4: Test
Launch the app. If it opens, you're done. If not, run sxstrace again to confirm the manifest is now being parsed correctly — you should see INFO: Parsing ... succeeded.
Still failing? Check these
If the error persists after fixing the equals sign, the manifest might have another syntax error nearby — missing closing quote, stray character, or an invalid Unicode byte. Upload the manifest to a validator like the W3C XML validator. Also, make sure the manifest file isn't being served from a different location (like a virtual store under %localappdata%\VirtualStore) — sxstrace's path will tell you exactly which file Windows is reading.
One last thing: if the app was originally compiled for a specific CPU architecture (e.g., x86 on an x64 system), the manifest won't cause 0x000036F9, but you'll get a different error. This particular code is strictly XML syntax — so focus on the formatting.