c# - 为什么在 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 包),但必须有一些文件没有进入已编译的文件夹。我怎么解决这个问题?
解决方案
此问题在以下 github 问题中讨论:
https://github.com/mono/SkiaSharp/issues/964
为了解决这个问题,我必须执行以下操作:
- 安装 SkiaSharp.NativeAssets.Linux nuget 包。
- 将以下内容添加到 dockerfile:
RUN apt-get update && apt-get install -y libfontconfig1
请注意,解决此问题后,我遇到了另一个问题:
Unable to load shared library 'libHarfBuzzSharp' or one of its dependencies
为了解决这个问题,我安装了 HarfBuzzSharp.NativeAssets.Linux。我提到这一点,以防有人像我一样遇到两个错误。
推荐阅读
- java - 无法调用函数声明的 Kotlin 变量值
- javascript - 使用reduce创建新对象但它更新旧对象
- c++ - 使用 g++ 编译时出现多个错误?
- python-3.x - 将 .mat 文件转换为 cv 图像
- html - i am not able to overlay the boxes using z-index
- flutter - 如何将 if 语句放在另一个中?
- python - 如何使用python检查本地机器的给定url上是否存在图像文件
- python - 带有QThread功能的Pyqt5崩溃程序
- java - 任务“:bootRun”执行失败。如何为我的 grails 应用程序解决此问题
- r - 当保存到 SQL Server 到 varchar(255) 时,RODBC::sqlsave() 会截断 DF 中的 col