F#使用托管的DLL及其附带的.so文件

问题描述 投票:0回答:1

[我试图使用第三方托管的DLL,该第三方DLL封装了非托管的.so,但我想不出如何避免在Mac OS上使用System.DllNotFoundException

此库有两个文件

  • managed_wraper.dll
  • unmanaged_library.so

[如果我在Linux机器上,则将.so和DLL放在输出文件夹中有效,但在Mac OS上则无效。我也无法在Jupyter上使用任何平台。

我为Mac OS上的CLI应用尝试了什么

我什至不知道从Jupyter开始,我可以用#r来找到DLL,但是当DLL试图找到.so时,它全都崩溃了。

软件版本

  • Mac OS 10.14.6
  • 。NET 2.1.401-Mac
  • jupyter核心4.6.1,jupyter-notebook:6.0.2
macos .net-core f# mono
1个回答
0
投票

哇,我不喜欢计算机:)因此,这是适用于CLI应用程序的功能

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

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

  1. 将包装程序DLL和libray.so复制到输出文件夹,然后[[重命名 library.solibrary.dylib] >>libray.so重命名为library.dylib并设置DYLD_LIBRARY_PATH
  2. 无论哪种情况,您都必须将包装DLL复制到输出文件夹。也许dotnet仅加载.dylib,但是我已经看到了在Mac OS上可以使用.so文件的地方。请有人启发我
© www.soinside.com 2019 - 2024. All rights reserved.