为COM互操作和VB6注册.NET程序集的不同方法

时间:2016-05-26 19:38:11

标签: c# com vb6 interop

我很好奇为什么注册我的COM互操作程序集会在两台计算机上显示不同的结果 - 使用不同的注册方法。我相信它们都是相同的注册,但它们在VB6将它们视为参考的方式上有所不同。

所以我有一个为COM互操作设置的VS2013项目。进行COM互操作所需的所有设置都已到位。

在机器1上,我有源代码和VS2013和VB6,因此编译器在构建程序集时使用“Register for COM Interop”设置,在VB6中,我的程序集立即出现在“References”列表中。我能够从VB6成功使用它。

在这种情况下,我必须将变量调暗为“MyNameSpace.MyClassName”。

在机器2上,我有编译的程序集(和TLB文件)和VB6。没有VS2013。我使用regasm / codebase来注册DLL,验证它是在注册表中,但是当我打开VB6时,我的程序集不在References列表中。如果我单击“浏览”并找到我的程序集,它表示无法添加它。所以,我浏览找到相应的TLB文件并将其添加到References,然后我就可以使用它了。

在这种情况下,我必须将变量变暗为“MyClassName”。

我的问题是,他们为什么不同?为什么我的程序集总是只出现在第一台机器的References列表中,而第二台机器上却没有列出?在为COM互操作注册我的程序集时,VS2013的作用有何不同?

我只是想了解这一点,而不是摸索和猜测什么会起作用。感谢您的任何意见。

0 个答案:

没有答案