Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
153 views
in Technique[技术] by (71.8m points)

.net - How to repair COMException error 80040154?

Moving a working C# project from a 64-bit Windows 7 machine to a 32-bit XP machine caused the following error:

Retrieving the COM class factory for component with CLSID {681EF637-F129-4AE9-94BB-618937E3F6B6} failed due to the following error: 80040154.

681EF637-F129-4AE9-94BB-618937E3F6B6 is not in the registry so it is not properly installed, but this is same ID that was previously a problem on the 64-bit Windows 7 machine.

The solution to this error on the 64-bit Windows 7 machine was found here (change Platform Target to x86) but this does not solve the problem on the 32-bit XP machine.

How do I find the DLL associated with 681EF637-F129-4AE9-94BB-618937E3F6B6, or, even better, how do I repair this exception?

question from:https://stackoverflow.com/questions/7197506/how-to-repair-comexception-error-80040154

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

To find the DLL, go to your 64-bit machine and open the registry. Find the key called HKEY_CLASSES_ROOTCLSID{681EF637-F129-4AE9-94BB-618937E3F6B6}InprocServer32. This key will have the filename of the DLL as its default value.

If you solved the problem on your 64-bit machine by recompiling your project for x86, then you'll need to look in the 32-bit portion of the registry instead of in the normal place. This is HKEY_LOCAL_MACHINESOFTWAREWow6432NodeClassesCLSID{681EF637-F129-4AE9-94BB-618937E3F6B6}InprocServer32.

If the DLL is built for 32 bits then you can use it directly on your 32-bit machine. If it's built for 64 bits then you'll have to contact the vendor and get a 32-bit version from them.

When you have the DLL, register it by running c:windowssystem32 egsvr32.exe.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...