Is COMException 0x80040154 always "Class Not Registered"?

Is System.Runtime.InteropServices.COMException 0x80040154 always means that the class is not registered? I get a COMException that says: "Retrieving the factory COM class for a component with CLSID {29131539-2EED-1069-BF5D-00DD011186B7} failed due to the following error: 80040154." He is trying to download Interop.Domino.dll, which is the link that I got from the COM tab in the Link link called Lotus Domino Objects, which points to domobj.tlb in the Notes program folder.

I wrote the code a few years ago - this is the only thing I've ever done using interop, and it's fair to say that I have never dealt with it.

I see this error again after moving the code to the 2008 R2 server (so it is x64). It was written in XP and launched in 2003 (both x86). To diagnose the problem, I built a Win7 x86 window (because there is no R2 x86 there) and it worked. I also created the x64 block in 2003, and it fails with the same error, so it seems to be related to the transition to the x64 architecture. Is there something I have to do when you do interop to get the x86 COM DLL to work on x64 machines?

+5
source share
3 answers

I had the same problem trying to create and run a .NET application on Windows 7 x64 that caused interop.domino.dll, which is only 32-bit.

, .NET x86 x64.

Visual Studio 2010 Express Edition, x86, .

:

  • > >
  • " " ""
  • "" > "" > " ",
  • BUILD > CONFIGURATION MANAGER, X86 CLOSE
+4

32- , (C:\Windows\SysWOW64\regsvr32.exe).
64- , DLL .

XP32 XP64 .NET - Gotchas?

.

+2

There is an IBM technologist who indicates that Domino COM classes are not supported on a 64-bit OS. See https://www-304.ibm.com/support/docview.wss?uid=swg21454291 . It seems that even when compiling the code to run as x86 (according to mpownie's answer) you still have some chances.

+2
source

All Articles