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` 套件 特此記錄一下,供未來翻查用

沒有留言: