Is a COMException of 0x80040154 always 'Class not registered'?

依然范特西╮ 提交于 2019-12-01 05:55:37

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

To resolve, I recompiled the .NET application to run specifically as x86 when run on x64 operating systems.

I was using Visual Studio 2010 Express Edition which is trickier to target specifically for x86 platforms than the paid for versions.

The solution was:

  1. Click TOOLS > OPTIONS > PROJECTS AND SOLUTIONS
  2. Check the box "Show advanced build configurations" and click OK
  3. Click TOOLS > SETTINGS > check EXPERT SETTINGS to see the build configuration manager
  4. Click BUILD > CONFIGURATION MANAGER select the platform dropdown to X86 and click CLOSE
  5. Now rebuild the project
lsalamon

Pay attention to register of 32-bit components using the correct register (C:\Windows\SysWOW64\regsvr32.exe).
If you have already registered up with the 64-bit version, unregister each dll with the same version.

More help you find here Team is Going from XP32 to XP64 for .NET Development - Any Gotchas?

Good luck

There's an IBM technote that indicates that the Domino COM classes are not supported on a 64-bit OS. See https://www-304.ibm.com/support/docview.wss?uid=swg21454291 So it seems like even by compiling the code to run as x86 (as per mpownie's answer), you're still taking some chances.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!