c# - 为什么在 ASP.NET Core Web API 中使用 SkiaSharp 会导致崩溃?

标签 c# asp.net-core nuget 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

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

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

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

无法加载共享库“libHarfBuzzSharp”或其依赖项之一

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

关于c# - 为什么在 ASP.NET Core Web API 中使用 SkiaSharp 会导致崩溃?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68990461/

相关文章:

reactjs - 如何确保 React 父组件在其子组件挂载之前加载数据?

c# - 如何从授权处理程序中引用类

c# - Nuget DLL hell : Could not load file or assembly System. 运行时

jquery - 为整个 Visual Studio 解决方案安装旧版 NuGet 包

c# - 使用特定字符串从 List<string> 中删除所有内容

c# - 更新面板内的 DropDownList AutoPostBack 丢失了 CSS 设计

ssl - 来自 KeyVault 的 Kestrel 安全 HTTPS X509 证书

nuget - 有没有办法告诉 nuGet 将文件安装到项目中,仅当该文件不在项目中时?

c# - C# dotnet core 中同一属性的多个方法的自定义属性声明

c# - ASP.NET Core 6 : Users are logged out after 30 minutes, 需要 6 小时