我创建了一个包装类来将CLR4(.net)加载到CLR2(vb6)中。它的确有效。
我在.net(4.0)中编译我的程序并运行批处理文件来创建.tlb。我从我的vb6程序中引用了.tlb,一切都很棒。
当我更改包装并重做上述过程时,vb6将看不到新的.tlb,它仍然使用旧的.t / p>
...任何?
答案 0 :(得分:1)
尝试在部署新tlb之前取消注册旧tlb。打开cmd shell并键入" regsvr32 / u mytlb.tlb",然后部署新的,并在没有/ u开关的情况下再次运行regsvr32。
有关其他信息,请参阅https://technet.microsoft.com/en-us/library/bb490985.aspx。
答案 1 :(得分:1)
我们在这里有一个类似的情况(托管.net程序集的vb6应用程序)。
您想要运行REGASM /取消注册* .dll。 * .tlb是运行REGASM / TLB的产物。
如果你的.net项目是为COM互操作注册的,它应该在你构建时为你做这个。