C# - (0x80040154): Retrieving the COM class factory for component with CLSID {877AA945-1CB2-411C-ACD7-C70B1F9E2E32} failed

1. Exeption Error:

System.Runtime.InteropServices.COMException (0x80040154): Retrieving the COM class factory for component with CLSID {877AA945-1CB2-411C-ACD7-C70B1F9E2E32} failed due to the following error: 80040154.

 

solution:

It means the class id 877AA945-1CB2-411C-ACD7-C70B1F9E2E32 is not in the registry.

You can verify this by opening regedit.exe, browsing to HKEY_CLASSES_ROOT\CLSID\{877AA945-1CB2-411C-ACD7-C70B1F9E2E32}. If your running a 32-bit app on a 64 bit OS, look for HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{877AA945-1CB2-411C-ACD7-C70B1F9E2E32}

If it is there, it may be some other issue but it is probably missing. To resolve this you will usually run the installer that distributes this COM object. If you don't have one and you know what dll implements the object, you can run regsvr32.exe (or regasm.exe for a managed dll)

 

link:

http://www.newdavesite.com/view/4663994

 

2. DllRegisterServer entry point was not found -  dll was loaded but the entry=point DLLregister server was not found

same situation:

I'm trying to use a .DLL file in a program I'm writing, and it comes up with the following error:  

An unhandled exception of type 'System.Runtime.InteropServices.COMException'   occurred in File.exe

Additional information: COM object with CLSID {...} is either not valid or not registered.

I tried registering the .DLL file using regsvr32, but that would come up with an error also: 

the DllRegister Server entry point was not found.  This file can not be registered.

http://social.msdn.microsoft.com/Forums/en-US/d5c5ff4a-63d3-49ea-a20d-50ef45924b2e/dllregisterserver-entry-point-was-not-found?forum=vbinterop

http://channel9.msdn.com/forums/TechOff/495175-The-module-CWindowsSystem32mydlldll-was-loaded-but-the-entry-point-DllRegisterServer-was-not-found/

 

Solution:

 

1) If DllRegisterServer was not found maybe there's nothing to register. Do you know for sure that the DLL contains COM components?

2) regasm is not tipically included in the search path so you need to run it using a full path, like this for example:

     C:\Windows\Microsoft.NET\Framework\v2.0.50727\regasm

3) Are you trying to register a .NET assembly using regsvr32?  If you are that would explain the problem, you need to use regasm to register .NET assemblies.

 

3. 用regasm命令注册Net的dll出错 - cannot find regasm

  

http://blog.csdn.net/wzhiu/article/details/19074501

http://msdn.microsoft.com/zh-cn/library/tzat5yw6(VS.80).aspx   程序集注册工具 (Regasm.exe)

http://social.msdn.microsoft.com/Forums/en-US/d5c5ff4a-63d3-49ea-a20d-50ef45924b2e/dllregisterserver-entry-point-was-not-found?forum=vbinterop

 

 

posted @ 2014-07-05 21:02  vivianC  阅读(1626)  评论(0编辑  收藏  举报