未找到 DLL,Newtonsoft.Json

DLL not found, Newtonsoft.Json

所以我构建了一个 Com 接口 DLL。我已经使用 Nunit 对其进行了全面测试。我有一个问题 Newtonsoft.Json 未找到并通过将其包含在 Class 库项目中解决。正如我所说,该项目是一个 COM 接口 DLL。当我从我的 VBA 开发系统调用 DLL 时出现错误,我还没有在 IDE 之外测试这个 VBA 开发系统,这样做没有任何意义。

那么这个DLL是做什么用的呢?它是供应商 WEBAPI 的接口。它还用作 TCP 数据库访问工具。因此,通过 NUGET 包,DLL 中包含依赖于 Newtonsoft.Json 的 WatsonTCP。这就是故障发生的地方。它正在使用 .Netframework 4.7.2.

我已经将newtonsoft.Json.DLL复制到VBA项目文件夹,VBAIDEexe文件夹,系统文件夹,syswow64。 none 似乎可以解决问题。该 dll 按预期从 Class 项目下的 bin 文件夹中执行。

还有什么建议吗?我一直在网上挖掘,到目前为止,上述尝试是网上建议的。或者我没有输入正确的搜索词 8).

您必须安装 Nuget 包 Newtonsoft.Json,因此当您构建项目时,您将能够使用它。 请记住将 JSON DLL 复制到使用其他 DLL 的可执行文件所在的位置。

经过多次尝试解决,感谢所有在这里发帖的人和发帖到这里提供的链接的人,我决定采取直截了当的方法。首先,我通过安装的 NUGET 包删除了对 Newtonsoft.Json 的所有项目引用,WatsonTCP 有问题,因为它依赖于 Newtonsoft.Json,那也必须删除。

因为我之前在获取如何使用它的示例时下载了 WatsonTCP 源代码,所以我决定将 WatsonTCP 项目包含到我的解决方案中。我将该项目作为参考添加到我的项目中,将 NUGET newtonsoft.Json 更新为当前版本,现在它可以按预期从 VBA 应用程序运行。

注意:在采用此路径之前,我确实确认所有 dll 都在我调用的 COM 模块的 Bin 文件夹中,并确认 bin 文件夹是干净的。这是现在通过 VS2022 解决方案的样子。