.Net6 中的 Windows Nano Server / Servercore 不支持 System.Drawing
您是否看到以下错误信息?
- 加载 Chrome 浏览器程序集时出错 (libcef.dll)
- Chrome 浏览器部署失败 (加载 libcef.dll 时出错) (203)
这是因为 Windows Nano Server 中不包含 System.Drawing,而 Windows Servercore (.Net6).
Windows 的官方 .NET 映像基于 Nano Sever。
要解决这个问题,我们建议采用以下方法之一:
1.以 "自包含 "方式构建和部署项目 (点击获取 更多信息 关于此选项)
2.通过更改 .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 等的具体依赖关系。 这里)