Fix COMADMIN_E_COMPFILE_NOTINSTALLABLE (0X80110429)
This error means COM+ can't find components in the DLL you're trying to install. Usually a registration issue or corrupt DLL. Fix it in 3 steps.
What You're Dealing With
You're getting COMADMIN_E_COMPFILE_NOTINSTALLABLE (0X80110429) when trying to install a DLL into COM+. The error message is blunt — "The file does not contain components or component information."
I've seen this maybe 30 times across Windows Server 2012 R2 through 2022. The culprit is almost always one of three things: the DLL isn't properly registered with regsvr32, the DLL itself is corrupted or the wrong architecture, or the COM+ catalog has a stale reference. Here's the fix path, quickest first.
Fix 1: Register the DLL (30 seconds)
You'd be surprised how often people skip this. Just having the DLL in a folder doesn't cut it. Open an elevated Command Prompt — right-click CMD, Run as Administrator — and run:
regsvr32 /i "C:\path\to\your\component.dll"
The /i flag forces the install path. If you get a success message, go back to your COM+ console and try the install again. If you get an error like "DLLRegisterServer failed" or "module not found", the DLL is busted — move to Fix 2.
Fix 2: Check the DLL (5 minutes)
Three things kill COM+ installs here:
- Wrong architecture. A 32-bit DLL won't install in a 64-bit COM+ application and vice versa. Check the DLL's bitness with a tool like
dumpbin /headersor just look at the file size — 32-bit DLLs are usually smaller. If mismatched, get the correct version from the vendor. - Corrupt file. I've had files that downloaded with a bad CRC. Download it fresh, compare the hash with the publisher's checksum. If you don't have a hash, grab the file again from the source.
- The DLL doesn't actually expose COM components. Run this from an admin prompt:
regsvr32 "C:\path\to\your\component.dll"
If it returns success, the DLL has a DLLRegisterServer entry point. That doesn't guarantee COM+ sees it, but it's a good sign. If regsvr32 fails, the DLL isn't registered, and COM+ can't find its metadata.
Fix 3: Repair the COM+ Catalog (15+ minutes)
If the DLL checks out but COM+ still throws 0x80110429, the COM+ catalog itself might be corrupted. I've seen this after botched uninstalls or failed updates. Here's the nuclear option — but it works.
Step A: Backup the Catalog
Open an elevated command prompt and run:
mkdir C:\COMPlusBackup
copy %windir%\registration\*.clb C:\COMPlusBackup
copy %windir%\system32\com\*.clb C:\COMPlusBackup
Step B: Re-register COM+ Core DLLs
Run these one at a time, let each finish:
cd /d %windir%\system32
regsvr32 /i comsvcs.dll
regsvr32 /i comadmin.dll
regsvr32 /i colbact.dll
regsvr32 /i comrepl.dll
regsvr32 /i comsetup.dll
Step C: Reset the COM+ Application
If the previous step didn't fix it, you might need to delete and recreate the COM+ application that's failing. Open Component Services (dcomcnfg), expand Component Services > Computers > My Computer > COM+ Applications. Right-click the offending app, choose Delete. Then create a new one — go to Action > New > Application, choose "Create an empty application", give it a name, and try installing your DLL into that fresh app.
Step D: Use COM+ Catalog Reset (Last Resort)
This wipes all custom COM+ applications — you'll lose configs. Only do this if nothing else works. Close Component Services, then at an admin prompt:
net stop comsysapp
net start comsysapp
rundll32.exe comsvcs.dll,ResetComCatalog
After this, all COM+ applications revert to defaults. You'll need to re-create yours. But you had backups, right? If not, restore from the .clb files you backed up earlier — copy them back to %windir%\registration\ and restart the COM+ System Application service.
When to Call the Vendor
If you've done all three fixes and still get the error, the DLL is almost certainly not a COM+ component — it might be a .NET assembly or a regular Win32 DLL that doesn't expose COM interfaces. Check the product documentation. I've spent hours chasing this on a DLL that turned out to be a plain C library with no COM support. Don't be that guy.
Was this solution helpful?