【问题标题】:Referencing a .NET Core DLL from Microsoft Access VBA从 Microsoft Access VBA 引用 .NET Core DLL
【发布时间】:2020-10-05 12:03:55
【问题描述】:

我有一个内置于 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 类库的秘诀是什么?

【问题讨论】:

  • 我应该提一下,我使用的是 32 位版本的 Microsoft Access,并且我将 .NET Core 项目的平台目标设置为 x86。

标签: c# vba ms-access .net-core


【解决方案1】:

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

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

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

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

【讨论】:

  • 谢谢你,@Erik-A。你解开了谜团!非常感谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-04-30
  • 2018-01-14
  • 1970-01-01
  • 2016-10-18
相关资源
最近更新 更多