前言
一直以來開發的 ASP.NET Core 專案都是在 Windows 環境執行。最近才開始接觸開發 ASP.NET Core 專案執行於 Docker Container 的開發環境,馬上就遇到處理圖片的問題。
在 Windows 的環境下處理圖片會用到 System.Drawing.Common
,但在 Linux 環境下是不支援的。所以在 Linux 下的圖片處理改採用 SkiaSharp
的套件。
SkiaSharp 這個套件在 Windows 及 Linux 都可以用,在 Windows 的開發環境已有測試套過可以正常運作,沒想到在 Linux 環境下還是噴錯了。
環境
- Docker Container (預設 ASP.NET Core 專案用的 base 我改用
aspnet:8.0-jammy-chiseled
可減少 image size) - .NET 8.0
- NuGet 安裝套件: SkiaSharp 版本 3.116.1
問題
而在使用 SkiaSharp 處理圖片的過程中出現以下錯誤訊息:
An unhandled exception occurred while processing the request.
DllNotFoundException: Unable to load shared library 'libSkiaSharp' or one of its dependencies.
解決方式
需要再安裝 SkiaSharp.NativeAssets.Linux.NoDependencies
套件
特此記錄一下,供未來翻查用