You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否将.NET 5 COM互操作对象与VB6进行连接使用?

.NET Core COM互操作及VB6调用能力解答

首先明确结论:.NET Core 3.0及以上版本 完全支持 向COM公开组件,可实现VB6调用(含事件触发)的需求,你的调研结论是正确的,后续的.NET 5/6/7/8等所有后继版本也都完整保留了该能力,不存在兼容问题。

你上级的认知是早期版本的限制导致的:在.NET Core 3.0正式发布之前,该版本的COM暴露能力确实没有完整落地,如果测试发生在这个时间窗口,就会得出".NET Core不支持"的结论,但该限制早在2019年.NET Core 3.0正式版发布后就已经被解除。

实现VB6可调用的.NET Core COM组件的核心要求如下:

  • 项目配置开启COM托管支持:在.csproj项目文件中添加配置<EnableComHosting>true</EnableComHosting>,同时给需要暴露给COM的类、接口标记[ComVisible(true)]特性
  • 事件支持需要显式定义符合COM规范的事件接口,遵循COM连接点协议,.NET Core互操作层会自动完成连接点的注册、事件派发逻辑,实现方式和.NET Framework基本一致
  • 编译完成后会生成后缀为.comhost.dll的专用COM主机文件,使用regsvr32命令注册该文件即可完成COM组件注册,注册完成后VB6可以像调用普通COM组件一样引用、调用方法、绑定事件。

和.NET Framework的实现相比,.NET Core的COM组件不需要依赖GAC,部署时只需把程序集、相关依赖、comhost.dll文件一起打包即可,部署流程更简洁。

内容的提问来源于stack exchange,提问作者Biel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 12:09:03