Winforms 互操作表单工具包DLL和;类不支持自动化或不支持预期接口“;错误

Winforms 互操作表单工具包DLL和;类不支持自动化或不支持预期接口“;错误,winforms,vb6,interop,com-interop,winforms-interop,Winforms,Vb6,Interop,Com Interop,Winforms Interop,我有一个.NET WinForms应用程序,我已使用Interop Forms Toolkit 2.1将其转换为COM dll。应用程序的安装项目将my tlb和Microsoft.InteropFormTools.tlb文件设置为注册为vsdrpCOM。该项目的先决条件是确保安装了Windows Installer 3.1、.NET Framework 3.5 SP1和Microsoft Interop Forms可再发行包2.0a 当我在安装了VisualStudio2010和VisualS

我有一个.NET WinForms应用程序,我已使用Interop Forms Toolkit 2.1将其转换为COM dll。应用程序的安装项目将my tlb和Microsoft.InteropFormTools.tlb文件设置为注册为vsdrpCOM。该项目的先决条件是确保安装了Windows Installer 3.1、.NET Framework 3.5 SP1和Microsoft Interop Forms可再发行包2.0a

当我在安装了VisualStudio2010和VisualStudio6的WindowsXP设备上本地运行这个程序时,它工作得很好。然而,在这台WindowsXP机器上,我收到一个错误:“类不支持自动化或不支持预期的接口。”


有什么想法吗?

您已经在要安装应用程序的机器上安装了程序集(请参阅)。程序集还应该位于VB6应用程序运行的目录中,或者安装在中。

我得到了它。对于遇到相同问题的人,请执行以下操作:

  • 进入VisualStudio2005、2008或2010(我使用的是2010),构建互操作表单
  • 然后,进入Visual Basic 6。如果您的库尚未被引用,请引用 图书馆
  • 构建VB6可执行文件
  • 返回Visual Studio(.NET版本)并仅生成安装程序。这样,安装程序和VB6都具有相同的.tlb文件

  • 你可以走了。谢谢你的建议,克里斯

    我认为只要Microsoft.InteropFormTools.tlb注册为vsdrfCOM,并且输出注册为vsdrpCOM,安装程序就会替我处理好它。这在这里的白皮书中有详细说明-再次阅读您的问题,我看到您在Visual Studio中的何处创建安装项目,这将起作用,但如果您使用其他安装程序,或手动安装,则需要RegAsm。