无法加载DLL dotnet核心

时间:2017-01-02 20:00:29

标签: macos pinvoke .net-core dllimport

我正在努力使用P / Invoke和dotnet core preview4。我使用P / Invoke的原因是我可以更好地控制在Mac和Linux上打开文件的方式(查看源代码后不支持某些标志),特别是因为这两个平台是我正在测试的。我尝试了几种尝试使用dylib的方法,但没有任何效果。这是我尝试过的:

  • DllImport
  • 中dylib的绝对路径
  • 确保dylib及其依赖项在mac上有@rpath
  • 根据另一个SO问题尝试dotnet publish
  • tried comment of this SO

我想我可能尝试了其他的事情,但我可能已经忘记了。对于我可能做错的事情,我真的很失败。 Project link。要重新创建:

    {li> dotnet restore src目录中的testfsharp
  • cd fsharp/
  • sh build-native.sh
  • cd来测试目录
  • dotnet run -- 3.2

我的开发环境是:

OS => macOS Sierra
dotnet version => preview4-004233

非常感谢任何帮助!

修改

抱歉,我忘记了错误消息:

Error Message:
 System.DllNotFoundException : Unable to load DLL 'MUDT.Native.Apple': The specified module could not be found.
 (Exception from HRESULT: 0x8007007E)
Stack Trace:
   at MUDT.IO.FileStreamHelper.OpenApple(String filename, OpenFlags flags, Int32 mode)
   at MUDT.IO.FileStreamHelper.openHandle(String filename, OpenFlags flags, Int32 mode)
   at MUDT.IO.FileStreamHelper.getUnixFileStream(String filename, FileAccess access, Int32 bufferSize)
   at MUDT.IO.MemoryMappedFile.partitionFile@95.GenerateNext(IEnumerable`1& next)
   at Microsoft.FSharp.Core.CompilerServices.GeneratedSequenceBase`1.MoveNextImpl()
   at System.Collections.Generic.List`1..ctor(IEnumerable`1 collection)
   at Microsoft.FSharp.Collections.SeqModule.ToArray[T](IEnumerable`1 source)
   at MUDT.IO.MemoryMappedFile.partitionFile(Boolean isRead, MemoryMappedFileStateConfig config)

GitHub问题:https://github.com/dotnet/coreclr/issues/8790

0 个答案:

没有答案