Windows Nano Server / Servercore 在 .Net6 中不支持 System.Drawing
您是否看到以下错误消息?
- 加载其中一个Chrome程序集时出错(libcef.dll)
Chrome 部署失败(加载 libcef.dll 时出错) (203)
这是因为System.Drawing未包含在Windows Nano Server和Windows Servercore中。(.Net6).
官方的 .NET Windows 映像基于 Nano Sever。
为了解决这个问题,我们建议以下两种方法之一:
构建并部署您的项目为“自包含”(点击获取更多信息关于此选项)
- 将以下属性更改为基于 Linux 的容器映像,请在您的 .csproj 文件中修改:
<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 等的具体依赖关系。这里)