Fix a missing DLL.xml or malformed EXE/DLL detected error in FSX and Steam Edition, preserve add-on entries, and find the correct AppData folder.
In FSX and FSX: Steam Edition, restore dll.xml from a backup in the active roaming AppData profile. If no backup exists, create a minimal valid file there, then repair each affected module add-on. FSX can run without the file, but it cannot reconstruct lost Launch.Addon entries.
What does the malformed EXE/DLL detected error mean in FSX?
The phrase usually points to one of two XML startup files: dll.xml for in-process modules or exe.xml for separate programmes. Read the exact filename in the warning before changing anything, because repairing one file does not repair the other.
| Message or symptom | What it means | What to examine |
|---|---|---|
Malformed DLL.XML file | FSX cannot parse the XML structure or encoding. | The active dll.xml |
Malformed EXE.XML file | The separate executable startup file is invalid. | The active exe.xml, not dll.xml |
| Warning names a specific third-party DLL | The XML may be valid, but the referenced module is damaged, incompatible or missing a dependency. | That module's Launch.Addon block and DLL file |
dll.xml is absent but FSX starts | No DLL startup registrations are being loaded. | No repair is needed unless an installed module requires the file. |
Common XML faults include two declarations at the top, a missing closing tag, a Launch.Addon block pasted after the closing SimBase.Document tag, typographic quotation marks and a bare ampersand. An ampersand in XML text or a path must be written as &.
If FSX reports a line and character number, inspect that location and the preceding line. XML parsers often discover a missing or mismatched tag only when they reach the next element.
Which AppData folder does FSX: Steam Edition use?
The correct dll.xml is beside the active FSX.cfg under the Windows user's roaming AppData folder, not in the Steam library, the main FSX directory, Program Files or ProgramData.
Press Windows key + R, enter %APPDATA%\Microsoft, and inspect the FSX folders found there.
| Installation | Likely location | Caveat |
|---|---|---|
| Boxed FSX | %APPDATA%\Microsoft\FSX\dll.xml | Boxed FSX normally uses the FSX profile. |
| Steam Edition only | %APPDATA%\Microsoft\FSX\dll.xml | A Steam-only installation commonly retains the FSX folder name. |
| Boxed FSX and Steam Edition side by side | %APPDATA%\Microsoft\FSX-SE\dll.xml | Steam Edition commonly uses FSX-SE when both editions are detected. |
Do not rely on the folder name alone. Change a harmless FSX setting, exit normally, and check which folder's FSX.cfg modification time changed. The active dll.xml belongs beside that file. Remnants of an older boxed installation can also cause Steam Edition to use FSX-SE.
AppData belongs to a particular Windows account. A file written to another user's profile, including one used by an installer launched under different credentials, will not affect the account from which FSX runs.
How do I restore or rebuild DLL.xml safely?
The safest method is to preserve the active profile, restore a known-good backup if available, and use a minimal empty file only when no usable copy remains.
- Close FSX and related utilities. Confirm that the simulator has fully exited before changing its configuration files.
- Identify the active folder. Use the
FSX.cfgmodification-time test rather than assuming thatFSXorFSX-SEis correct. - Back up the complete profile. Copy the active folder somewhere outside AppData. Our instructions for backing up FSX configuration and add-on files before editing cover the other files worth preserving.
- Show filename extensions. Enable extensions in File Explorer so that a file displayed as
dll.xmlis not actuallydll.xml.txt. - Look for an earlier copy. Check the active folder and your backups for names such as
dll.xml.bak,dll.xml.oldor dated copies made by an add-on installer. - Restore the best backup. Rename the damaged file to
dll.xml.bad, copy the backup into the active folder, and name the copy exactlydll.xml. Keep the original backup unchanged. - Create a minimal file if no backup exists. In a plain-text editor, enter:
<?xml version="1.0" encoding="Windows-1252"?> <SimBase.Document Type="Launch" version="1,0"><Descr>Launch</Descr><Filename>dll.xml</Filename><Disabled>False</Disabled><Launch.ManualLoad>False</Launch.ManualLoad></SimBase.Document> - Save it as plain text. Use the editor's all-files option and verify the final name. Save as Windows-1252 or ANSI when using the template above. If the editor saves as UTF-8, change the declaration to
encoding="UTF-8"so the declaration and actual encoding agree. - Test the empty container. Start FSX before restoring any modules. The malformed XML warning should be gone, but module-dependent menu commands and utilities will remain unavailable until their entries are restored.
Do not copy a populated dll.xml from an unrelated computer. Its paths, enabled states and modules may not match your installation, and an unfamiliar startup DLL should not be trusted merely to remove an error.
I deleted DLL.xml: will FSX or Steam verification restore it?
FSX does not reliably recreate a deleted dll.xml, and Steam verification does not normally rebuild user-specific third-party registrations. An add-on installer may create the file or add its own block when that add-on is repaired or reinstalled.
The file lives in the Windows profile and is not a normal stock file in the Steam installation directory. A boxed-FSX repair has the same limitation. See our explanation of what Steam verification and boxed repair can actually restore before using either method.
If FSX works and no installed module requires startup registration, leaving dll.xml absent is acceptable. Rebuild it only when an add-on needs it or FSX reports a fault involving that file.
How do I recover missing Launch.Addon entries?
A minimal dll.xml repairs the container but contains no third-party registrations, so each affected module must be restored from your backup or repaired through its own installer.
A normal module block contains a name, disabled state, manual-load state and path:
<Launch.Addon><Name>Module name</Name><Disabled>False</Disabled><ManualLoad>False</ManualLoad><Path>Path to module.dll</Path></Launch.Addon>
The complete block must be inside SimBase.Document and before its closing tag. XML element names are case-sensitive, and some add-ons require extra elements, so recover the block from your own backup or let the matching installer recreate it rather than guessing its contents.
- Confirm that
Pathpoints to an existing DLL, especially after moving FSX or an add-on to another drive. - Use
Disabled>FalseandManualLoad>Falseonly for a module intended to load automatically. - Restore one module at a time and start FSX after each change.
- If one block causes a crash, change its
Disabledvalue toTrueand repair that add-on instead of deleting the entire XML file. - Approve an FSX trust prompt only for a DLL you deliberately installed and recognise.
FSX and FSX: Steam Edition are 32-bit programmes, so a referenced binary must be a compatible 32-bit FSX module. Separate executable programmes normally belong in exe.xml, while some aircraft gauge DLLs are loaded through panel configuration and do not need dll.xml.
Why is the Add-ons menu or tab still missing?
The Add-ons menu appears only when a loaded module creates it; a valid but empty dll.xml cannot add that menu by itself.
If by tab you mean the Add-ons item on FSX's top menu bar, check the module's complete block, DLL path, disabled state and trust response. Our module-specific checks for a missing FSX: Steam Edition Add-ons menu cover the remaining causes. If the entire top menu bar is absent, that is a display issue rather than a dll.xml problem.
Why does it still not work after replacing DLL.xml?
If the same error remains after installing the minimal file, FSX is usually reading a different profile, the filename is wrong, or the warning concerns exe.xml, MSXML or a module binary instead.
| Test result | Likely cause | Next action |
|---|---|---|
The malformed DLL.XML warning remains | Wrong AppData folder, wrong Windows account, .txt extension or an add-on rewriting the file | Repeat the FSX.cfg modification-time test and inspect the full filename. |
The warning remains after dll.xml is renamed | The active file is elsewhere or the warning names another file | Read the complete message and check exe.xml separately. |
| FSX starts, but an add-on is absent | The empty file has no registration, or the restored block is disabled | Repair that add-on and verify its complete Launch.Addon block. |
| FSX crashes after one block is restored | The referenced module is incompatible, damaged or missing a dependency | Set that block to Disabled>True and repair the module. |
| The message specifically names MSXML | The XML parser component may be the problem rather than the add-on registrations | Do not keep rebuilding dll.xml. |
For a warning that specifically names the parser, use our separate checks for an MSXML 4.0 error in FSX. Replacing module blocks will not repair an underlying MSXML fault.
Does FSX need DLL.xml if no module add-ons are installed?
No. FSX can run without a populated dll.xml, and ordinary aircraft or scenery packages often do not use it. The file is required only when an installed DLL module needs FSX to load it at startup.