我们正在支持老化的 VB6 系统,我们已在 .Net 中为其编写了新代码,将代码放入程序集中,然后导出 *.tlb 文件以与 VB6 代码库一起使用。
我的问题是,在我希望运行代码的每台计算机上,我是否必须使用 Regasm 来注册类型库?
我之所以这么问,是因为随着计算机损坏、添加新计算机等情况,跟踪类型库安装变得很困难。此外,如果我们更新 .Net 代码,我们需要遍历每台计算机并重新注册类型库。
总而言之,是否可以从 VB6 运行 .Net 代码,而无需在运行代码的每台计算机上注册类型库?
Thankyou
Regasm.exe 仅在您使用以下命令运行时创建类型库/tlb:filename.tlb
命令行选项。然后,您可以在 VB6 项目中使用“项目 + 引用”、“浏览”按钮来选择 .tlb 文件。运行 Tlbexp.exe 是获取它的另一种方法,无需注册。您应该更喜欢 IDE 中的“注册 COM 互操作”选项。但是,您必须以提升的方式运行 VS,以便它可以写入注册表。右键单击该快捷方式并选择“以管理员身份运行”。
让其出现在 VB6 列表中是一个小小的便利,但很难实现。 Regasm.exe 调用的标准 .NET 注册代码不会编写所需的“可编程”密钥来让 VB6 自动将组件添加到其列表中。您必须编写一个由 [ComRegisterFunction] 属性装饰的自定义注册函数,该函数写入缺少的密钥。当您只需单击“浏览”即可时,这是不值得的。
另请注意,您这样做not必须在用户的计算机上注册类型库。仅 VB6 编译器需要它。您必须注册 [ComVisible] 类,使用安装项目很容易。只需将 DLL 的 Register 属性设置为 vsdrpCOM 即可。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)