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).

    官方的 .NET Windows 映像基于 Nano Sever。

    为了解决这个问题,我们建议以下两种方法之一:

  1. 构建并部署您的项目为“自包含”(点击获取更多信息关于此选项)

  2. 将以下属性更改为基于 Linux 的容器映像,请在您的 .csproj 文件中修改:
<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 等的具体依赖关系。这里)