命名空间错误及更多

时间:2019-05-30 15:50:34

标签: vb.net dll com interop typelib

我正在制作一个类型库,在其中链接了另一个类型库,以实现自定义选项卡控件。链接的(或引用的)类型库可以在这里找到:https://www.codeproject.com/Articles/91387/Painting-Your-Own-Tabs-Second-Edition

一切都很好,但是,因为我要创建的类型库要与COM和GAC一起使用,所以我必须将链接库合并到我的库中。否则,即使我使链接的库com可见,该库也无法通过COM识别。

在合并过程中(即,将TabControl文件夹直接添加到我的项目中),我遇到的问题是出现“未定义”错误。最初,我有大约600个错误,并且通过导入,我设法将该数字降低到198。除了“未定义”错误之外,我还遇到了一些签名错误。我猜测引用有问题,但是从我看到的所有引用中,都存在tabcontrol库。我认为唯一的区别是它引用了2.0版本。

我尝试使用tabcontrol库中可见的com,但是这样做会返回错误,指出找不到COM GUID。因此,我选择直接在项目中使用它。为了消除错误,我检查了所有导入,即使一切就绪,我仍然遇到名称空间错误。

https://i.imgur.com/fr0v1jn.png

如何解决这些错误?任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:0)

我看了看CustomTabControl项目。它最初是用VS2010编写的。我用VS2017打开了它,并成功进行了转换,并且编译时没有错误。这是一个仅具有x86构建配置的.NET Framework 3.5项目。

这是我建议您采取的措施:

  1. 将CustomTabControl项目升级到与您的类型库相同的.NET Framework。
  2. 如果类型库支持其他构建配置,请使用相同的构建配置升级CustomTabControl。
  3. 完成1.和2.后,将CustomTabControl的源代码复制到类型库中(以及所有许可要求),并在需要时添加相同的引用(由于CustomTabControl,您可能不需要添加任何引用)使用基本的WinForms库)。