首页 > 解决方案 > 为什么在 ASP.NET Core Web API 中使用 SkiaSharp 会导致崩溃?

问题描述

我正在构建一个 ASP.NET Core Web API 项目,该项目将使用 SkiaSharp 在后端进行渲染。该代码在 .NET Core 桌面测试应用程序中运行,但是当我们在 ASP.NET Core Web API 项目上运行相同的代码时,项目会崩溃。异常表明它找不到 libSkiaSharp:

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

.csproj 正在引用 SkiaSharp(和相关的 Nuget 包),但必须有一些文件没有进入已编译的文件夹。我怎么解决这个问题?

标签: c#asp.net-corenugetskiasharp

解决方案


此问题在以下 github 问题中讨论:

https://github.com/mono/SkiaSharp/issues/964

为了解决这个问题,我必须执行以下操作:

  1. 安装 SkiaSharp.NativeAssets.Linux nuget 包。
  2. 将以下内容添加到 dockerfile: RUN apt-get update && apt-get install -y libfontconfig1

请注意,解决此问题后,我遇到了另一个问题:

Unable to load shared library 'libHarfBuzzSharp' or one of its dependencies

为了解决这个问题,我安装了 HarfBuzzSharp.NativeAssets.Linux。我提到这一点,以防有人像我一样遇到两个错误。


推荐阅读