首页 > 解决方案 > 从 Microsoft Access VBA 引用 .NET Core DLL

问题描述

我有一个内置于 Microsoft Access 的应用程序,它需要引用 .NET Core 3.0 类库。我尝试使用本文中的过程构建 .NET Core DLL,并将 .NET Core 3.0 作为目标框架。

https://docs.microsoft.com/en-us/dotnet/core/native-interop/expose-components-to-com

但是,当我尝试引用 comhost DLL 时,会出现一个对话框,其中显示消息“无法添加对指定文件的引用”。

从 Microsoft Access VBA 引用 .NET Core 类库的秘诀是什么?

标签: c#vbams-access.net-core

解决方案


如果您查看链接的页面,则会跳出:

与 .NET Framework 不同,.NET Core 不支持从 .NET Core 程序集生成 COM 类型库 (TLB)。指导是为 COM 接口的本机声明手动编写 IDL 文件或 C/C++ 标头。

VBA 需要一个类型库来引用外部 DLL。由于 .NET Core 不支持生成类型库,因此您无法引用 .NET Core COM DLL。

但是,您可以使用后期绑定而根本不引用 DLL。这意味着您必须使用CreateObject智能感知、编译时错误和事件来创建对象,并且将缺乏对它们的支持。


推荐阅读