VS中Visual Basic项目添加DLL后,无法识别Mylib.Mylibtype类型
解决VB项目中COM引用类型找不到的问题
检查COM引用的互操作程序集设置
- 右键项目里的该COM引用,打开「属性」面板
- 把「嵌入互操作类型」改成
False。VB默认可能开启这个选项,会导致类型无法通过命名空间直接访问,而C#默认是关闭的,这大概率是两者出现差异的原因。
确认类型的实际名称
- 用VS的「对象浏览器」(按
Ctrl+Alt+J打开)找到这个COM引用,展开后查看所有可用类型 - 仔细核对类型的完整名称是不是
Mylibtype,COM组件的类型名称可能和C#里用的存在大小写、命名格式差异
尝试用全局别名访问类型
- 如果必须开启嵌入互操作类型,可以试试全局别名:
- 右键COM引用,在属性里把「别名」设为
global - 代码顶部添加
Imports global.Mylib - 声明变量时直接写
Dim PCs As Mylibtype(不用重复加命名空间)
- 右键COM引用,在属性里把「别名」设为
手动生成互操作程序集
- 用
tlbimp.exe工具手动生成互操作程序集,再添加到项目:- 打开VS开发者命令提示符
- 执行命令:
tlbimp.exe "你的dll文件路径" /out:Interop.Mylib.dll - 把生成的
Interop.Mylib.dll作为普通引用添加到VB项目,替代原来的COM引用方式
内容的提问来源于stack exchange,提问作者Nocxy
相关产品推荐
相关产品推荐

