Windows Nano Server / Servercore 在 .Net6 中不支援 System.Drawing

This article was translated from English: Does it need improvement?
Translated
View the article in English

您是否看到以下錯誤訊息?

  • 加載其中一個 Chrome 程式集錯誤 (libcef.dll)
  • Chrome 部署失敗 (加載 libcef.dll 時出錯) (203)

這是因為 System.Drawing 沒有包含在 Windows Nano Server 和 Windows Servercore 中。 (.Net6)官方的 Windows .NET 映像是基於 Nano Server。

為了解決此問題,我們建議以下任一方法:

  1. 將您的專案建置並部署為「自行包含」 (點擊 更多資訊 在此選項上)

  2. 透過更改您的 .csproj 文件中的以下屬性,切換到基於 Linux 的容器映像:
<DockerDefaultTargetOS>Windows</DockerDefaultTargetOS>
      to  
<DockerDefaultTargetOS>Linux</DockerDefaultTargetOS>
XML

您可以接著添加 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 等更多版本的依賴項可以查看 這裡)