【问题标题】:How do I prevent VisualStudio from prepending namespace to TypeLib coclass name?如何防止 VisualStudio 将命名空间添加到 TypeLib coclass 名称?
【发布时间】:2014-08-31 05:27:19
【问题描述】:

我有一个 COM 可调用包装器,它一直工作到现在。

现在,当我尝试编译依赖于它的 VB6 应用程序时,出现“未定义用户定义类型”错误。发生变化的事情包括 COM Callable Wrapper 从 .Net Framework 2 移动到 4,我现在使用的是 VS2013 而不是 VS2010。代码有一些变化,但我认为没有任何变化。

当我查看 oleview.exe 中生成的 typelib 并将其与以前的版本进行比较时,我看到命名空间(带下划线)已被添加到我的两个 coclass 中,因此我现在拥有 coclass CompanyName_Compatibility_Field 之前的位置只是coclass Field 我认为这是我的问题的原因。

我一直有对经典 ADODB 主互操作程序集的引用,但现在我在生成的 typelib 中有一个 importlib("msado15.dll"); 语句,以前我没有,并且 typelib 现在包含许多 ADODB 枚举类型的枚举定义,以前它没有。

ADODB 是现在将命名空间添加到我的 Field 对象之前的原因吗?有没有办法可以防止这种情况并从类型库中排除 ADODB 内容?

【问题讨论】:

    标签: .net vb.net com vb6 visual-studio-2013


    【解决方案1】:

    我更改了 ADODB 引用和 Active Reports 引用(也有一个 Field 对象)的 Embed Interop Types 属性,现在我的 VB6 应用程序可以编译了。 我承认我不知道这个属性。当我从框架 2 移动到 4 后重新添加一些引用时,它一定已经改变了。

    【讨论】:

      猜你喜欢
      • 2015-07-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多