在VB6项目中使用类型库(.tlb),ActiveX创建对象失败

时间:2011-08-11 01:31:36

标签: visual-studio-2008 vb6 regasm

我从C#Visual Studio 2008创建了一个dll和tbl文件。

Regasm AssemblyName.dll /tlb: FileName.tlb /codebase将其注册到我的本地服务器。

使用tlb参考。编译它,它在我的开发PC中运行良好。

创建exe后,在其他PC上运行,提示错误消息“ActiveX无法创建对象”。

我需要为我部署的每台机器使用Regasm吗?

如果部署PC中没有Visual Studio,该怎么办?没有可以找到任何谴责。

3 个答案:

答案 0 :(得分:1)

是的,您需要将其作为安装的一部分。但这只是其中的一部分。您还必须使用属性标记所有公共方法,以确保重新编译不会意外地以错误的顺序编译方法。见this

答案 1 :(得分:0)

是的,我认为您需要在安装过程中执行此操作。

答案 2 :(得分:0)

是的,您需要在每台客户端计算机上运行RegAsm。如果您的组件发生了更改,则需要运行RegAsm ... /unregister,将组件替换为新组件并再次运行RegAsm

为了让您的C#DLL工作,您还需要在机器上安装相关框架(在您的情况下为.NET Framework 3.5)

我会考虑使用安装程序,因为这可以执行注册/取消注册和在需要时自动安装框架的繁重工作。