Windows Nano Server / Servercore 在 .Net6 中不支援 System.Drawing
您是否看到以下錯誤訊息?
- 加載其中一個 Chrome 程式集錯誤 (libcef.dll)
- Chrome 部署失敗 (加載 libcef.dll 時出錯) (203)
這是因為 System.Drawing 沒有包含在 Windows Nano Server 和 Windows Servercore 中。 (.Net6)官方的 Windows .NET 映像是基於 Nano Server。
為了解決此問題,我們建議以下任一方法:
將您的專案建置並部署為「自行包含」 (點擊 更多資訊 在此選項上)
- 透過更改您的 .csproj 文件中的以下屬性,切換到基於 Linux 的容器映像:
<DockerDefaultTargetOS>Windows</DockerDefaultTargetOS>
to
<DockerDefaultTargetOS>Linux</DockerDefaultTargetOS>
您可以接著添加 Linux 相依性:
RUN apt update \ && apt install -y libgdiplus libxkbcommon-x11-0 libc6 libc6-dev libgtk2.0-0 libnss3 libatk-bridge2.0-0 libx11-xcb1 libxcb-dri3-0 libdrm-common libgbm1 libasound2 libxrender1 libfontconfig1 libxshmfence1
(上述依賴項是針對 Debian 11 的,具體的 Ubuntu、CentOs、Amazon Linux 等更多版本的依賴項可以查看 這裡)