gpt4 book ai didi

dll - 类未注册错误

转载 作者:行者123 更新时间:2023-12-02 20:57:09 26 4
gpt4 key购买 nike

在 64 位计算机上从 Visual Studio 2012 运行应用程序时,显示以下错误消息:

Retrieving the COM class factory for component with CLSID {F2D4F4E5-EEA1-46FF-A83B-A270C92DAE4B} failed due to the following error: 80040154 Class not registered (Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG))

我在 Visualstudio 中使用 Inventor packandgo dll 库。

有人知道错误是什么吗?

最佳答案

我的问题和解决方案

  1. 我有一个 32 位第三方 dll,已安装在 64 位 2008 R2 机器上。

  2. 我在.net 4.5框架中创建了一个wcf服务,它调用32位第三方dll进行处理。现在我已将构建属性设置为目标“任何”cpu 并将其部署到 64 位计算机。

  3. 当我尝试调用 wcf 服务时,出现错误“80040154 类未注册(来自 HRESULT 的异常:0x80040154 (REGDB_E_CLASSNOTREG”)

  4. 现在,我使用 ProcMon.exe 跟踪 com 注册表问题,并发现该进程正在 HKLM\CLSID 和 HKCR\CLSID 处查找注册表项,而其中没有项。

  5. 得知 Microsoft 不会将 32 位 com 组件注册到 64 位计算机中的 HKLM\CLSID、HKCR\CLSID 路径,而是将条目放置在 HKLM\Wow6432Node\CLSID 和 HKCR\Wow6432Node\CLSID 中路径。

  6. 现在冲突是 64 位进程试图在 64 位计算机中调用 32 位进程,该进程将在 HKLM\CLSID、HKCR\CLSID 中查找注册表项。解决方案是我们必须强制 64 位进程查看 HKLM\Wow6432Node\CLSID 和 HKCR\Wow6432Node\CLSID 处的注册表项。

  7. 这可以通过将 wcf 服务项目属性配置为定位到“X86”计算机而不是“任何”来实现。

  8. 将“X86”版本部署到 2008 R2 服务器后出现“System.BadImageFormatException:无法加载文件或程序集”问题

  9. 此 badimageformatException 的解决方案是在 IIS 应用程序池属性中将右侧应用程序池的“Enable32bitApplications”设置为“True”。

关于dll - 类未注册错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17985653/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com