2025/01/23
[ASP.NET Core] 解決 ASP.NET Core 在 Linux Container 出現無法載入 libSkiaSharp 相依性問題
markdown
### 前言
一直以來開發的 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` 套件
特此記錄一下,供未來翻查用
沒有留言:
張貼留言