在Linux上使用带有.NET Core 2.2的SkiaSharp 1.68.0并在尝试在jpeg-memory-stream上使用Decode时出现此错误(相同的代码适用于Windows):

System.TypeInitializationException: The type initializer for 'SkiaSharp.SKAbstractManagedStream' threw an exception. ---> System.DllNotFoundException: Unable to load shared library 'libSkiaSharp' or one of its dependencies. In order to help diagnose loading problems, consider setting the LD_DEBUG environment variable: liblibSkiaSharp: cannot open shared object file: No such file or directory
   at SkiaSharp.SkiaApi.sk_managedstream_set_delegates(IntPtr pRead, IntPtr pPeek, IntPtr pIsAtEnd, IntPtr pHasPosition, IntPtr pHasLength, IntPtr pRewind, IntPtr pGetPosition, IntPtr pSeek, IntPtr pMove, IntPtr pGetLength, IntPtr pCreateNew, IntPtr pDestroy)
   at SkiaSharp.SKAbstractManagedStream..cctor()
   --- End of inner exception stack trace ---
   at SkiaSharp.SKAbstractManagedStream..ctor(Boolean owns)
   at SkiaSharp.SKManagedStream..ctor(Stream managedStream, Boolean disposeManagedStream, Boolean owns)
   at SkiaSharp.SKManagedStream..ctor(Stream managedStream, Boolean disposeManagedStream)
   at SkiaSharp.SKCodec.WrapManagedStream(Stream stream)
   at SkiaSharp.SKCodec.Create(Stream stream, SKCodecResult& result)
   at SkiaSharp.SKCodec.Create(Stream stream)
   at SkiaSharp.SKBitmap.Decode(Stream stream)

最内层的错误消息似乎是“没有这样的文件或目录”,这很奇怪,因为我正在解码内存流 . 这适用于Windows,在升级到.NET Core 2.2和最新的SkiaSharp之前,它已在Linux上运行 .

我已经尝试按照错误消息中的建议设置LD_DEBUG env变量,但这并没有做太多 . 不知道该怎么设置它真的 .

找到一个thread,建议安装SkiaSharp.NativeAssets.Linux作为解决方案,但不幸的是,没有发现任何差异 . (我正在使用dotnet cli在Linux上的Docker文件中使用putty在ssh上构建 . 很多默认的Docker文件由VS生成:最新)