F# 使用包含 .so 文件的托管 DLL

F# use managed DLL with included .so file

我正在尝试使用包装非托管 a .so 的第 3 方托管 DLL,但我不知道如何避免 Mac [=73 上的 System.DllNotFoundException =].

这个库有两个文件

如果我在 linux 框上放置 .so 并且输出文件夹中的 DLL 工作,在 Mac OS 上不起作用。我也无法获得任何与 Jupyter 一起工作的平台。

我在 Mac OS

上为 CLI 应用程序尝试了什么

我什至不知道从哪里开始使用 Jupyter,我可以用 #r 找到 DLL,但是当 DLL 试图找到 .so 时,一切都崩溃了.

软件版本

哇,我不喜欢电脑 :) 下面是适用于 CLI 应用程序的方法

Linux CLIDLL.so 复制到输出文件夹

Mac OS CLI 我不得不将 .so 重命名为 .dylib 然后您可以:

  1. 将包装器 DLL 和 libray.so 复制到输出文件夹,然后 library.so 重命名library.dylib
  2. libray.so 重命名为 library.dylib 并设置 DYLD_LIBRARY_PATH

无论哪种情况,您都必须将包装器 DLL 复制到输出文件夹。也许 dotnet 只加载 .dylib,但我看到你可以在 Mac OS 上使用 .so 文件。请哪位大侠赐教