我有一个程序集,我设法使 VB6 可以看到它并且它可以工作,但是在用 VB5 完成同样的事情时遇到了问题。
对于 VB6,我已经构建了程序集,使其 COM 可见,将其注册为 COM 对象等,并且程序集显示在 VB6 的引用列表中,并允许我成功使用它。对象浏览器还显示组件中的方法。我将程序集及其 TLB 复制到用于 VB5 开发的虚拟工作站,然后运行 Regasm,显然成功:
C:\>C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727
\regasm arserviceinterface.dll /tlb:arserviceinterface.tlb
Microsoft (R) .NET Framework Assembly Registration Utility 2.0.50727.3053
Copyright (C) Microsoft Corporation 1998-2004. All rights reserved.
Assembly exported to 'C:\Projects\AR\3rd Party\ARService\arserviceinterface.tlb'
, and the type library was registered successfully
请注意,虚拟 W/S 是 Win2k,上面没有 .NET Fx 3.5,只有 2.0。
该程序集显示在 VB5 中可以选择的引用中,但该程序集的方法未显示在对象浏览器中,并且通常无法使用。要么有一个我没有完成的步骤,要么 VB5 不知道如何使用这样的 COM 对象。请注意,VB5 安装程序位于虚拟工作站上,而不是安装 VB6 的同一工作站上。
有任何想法吗?我想到的一件事是我可能需要在有问题的工作站上生成和使用一个强名称,但是......