首页 文章

更新COM DLL后部署.NET服务

提问于
浏览
2

我正在尝试更新vb6 DLL并重新部署.NET服务,但是我收到以下错误:

System.Runtime.InteropServices.COMException(0x80040154):由于以下错误,检索具有CLSID 的组件的COM类工厂失败:80040154 .

我正在部署的步骤如下:

  • 编译VB6 COM DLL

  • 在目标计算机上注册COM dll

  • 使用tblimp创建Interop DLL

  • 将此Interop DLL添加到.NET项目

  • 重新编译项目和安装程序

  • 在目标计算机上运行安装程序(以前没有安装过该服务)

有任何想法吗?

3 回答

  • 0

    您是否在目标计算机上安装了VB运行时,并且它是相关的辅助支持文件?你在dll上运行了一个regsrvr32吗?您是否检查过TypeLib以查看它是否在目标计算机的注册表中?

    希望这会有所帮助,最好的问候,汤姆 .

  • 1

    错误代码0x80040154翻译为REGDB_E_CLASSNOTREG,这意味着“类未注册”,所以我猜你的类没有注册 . 您应该在HKEY_LOCAL_MACHINE \ CLSID下查看注册表,并确保您的注册没有失败,并且它实际指向您的dll .

  • 0

    您可能缺少目标计算机上COM对象所需的其他dll . 来自sysinternals的'listdlls'和'procexp'可能有助于识别缺失的内容 . .NET也可能试图强制它作为64位应用程序运行 . 使用/ 32bit开关运行corflags可能会有所帮助 .

相关问题