c# - 从 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 类库的秘诀是什么?
解决方案
如果您查看链接的页面,则会跳出:
与 .NET Framework 不同,.NET Core 不支持从 .NET Core 程序集生成 COM 类型库 (TLB)。指导是为 COM 接口的本机声明手动编写 IDL 文件或 C/C++ 标头。
VBA 需要一个类型库来引用外部 DLL。由于 .NET Core 不支持生成类型库,因此您无法引用 .NET Core COM DLL。
但是,您可以使用后期绑定而根本不引用 DLL。这意味着您必须使用CreateObject
智能感知、编译时错误和事件来创建对象,并且将缺乏对它们的支持。
推荐阅读
- javascript - 在插槽内的组件内使用组件...不知道怎么说
- android - 为什么 PackageInstaller.getSessionInfo 结果不一致?
- java - Web.xml 无效元素名称
- azure - Azure 和 OpenVPN 的 DNS 问题,不能通过 DNS 访问,只能通过 IP
- java - 如何将 Java 项目转换为 Maven 项目
- r - 是否有比 R 中的“extract_table”函数更整洁的方法?
- mongodb - 如何在 MongoDB 中找到平均分数?
- javascript - 在reactJS中转换嵌套的json对象?
- python - 为无向图中的所有节点存储 dist(node, start) 的算法
- javascript - 如何从节点 js 文件调用 vanilla JavaScript 函数