我可以使用*.tlb文件而不使用Regasm在计算机上注册它

JMK*_*JMK 2 .net dll legacy-code

我们支持老化的VB6系统,我们已经在.Net中编写了新代码,将代码放入程序集中,然后导出*.tlb文件以供VB6代码库使用.

我的问题是,在我希望运行代码的每台计算机上,我是否必须使用Regasm来注册类型库?

我问,因为计算机坏了,新计算机被添加等等,很难跟踪类型库的安装.另外,如果我们更新.Net代码,我们需要绕过每台计算机并重新注册类型库.

总而言之,是否可以从VB6运行.Net代码而无需在运行代码的每台计算机上注册类型库?

谢谢

Han*_*ant 6

Regasm.exe仅在使用/tlb:filename.tlb命令行选项运行时才创建类型库.然后,您可以在带有Project + References的VB6项目中使用Browse按钮来选择.tlb文件.运行Tlbexp.exe是另一种获取它的方法,减去注册.还有你应该喜欢的那个,IDE中的"注册COM互操作"选项.但是,您必须运行VS提升,以便它可以编写注册表.右键单击该快捷方式,然后选择"以管理员身份运行".

让它出现在VB6列表中是一个小的便利,但很难得到.Regasm.exe调用的标准.NET注册代码不会写入所需的"可编程"键,以使VB6自动将组件添加到其列表中.您必须编写由[ComRegisterFunction]属性修饰的自定义注册函数,该属性将写入缺失的键.只需单击"浏览"即可获得它.

另外请注意,你必须注册用户的机器上类型库.它只需要VB6编译器.您必须注册[ComVisible]类,使用安装项目很容易.只需将DLL的Register属性设置为vsdrpCOM即可.