dotnet6 项目在Docker部署报错 The type initializer for 'Gdip' threw an exception.
asp .net core 部署在docker中,使用了System.Drawing.Common包,在容器中使用时报错“The type initializer for 'Gdip' threw an exception.”
原因:因为System.Drawing.Common在跨平台的兼容性不够理想,官方设置为后续版本只能在Windows平台使用,默认是不开启的,需要在运行时配置中开启才行。
解决步骤:1、首先得确认改环境中是否已安装了 libgdiplus和libc6-dev 包,没有需先根据项目运行系统进行对应安装
2、在[appname].runtimeconfig.json 配置文件中增加以下配置
{ "runtimeOptions": { "configProperties": { "System.Drawing.EnableUnixSupport": true } } }
3、重启项目服务
官方说明文档:https://learn.microsoft.com/en-us/dotnet/core/compatibility/core-libraries/6.0/system-drawing-common-windows-only
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
· 零经验选手,Compose 一天开发一款小游戏!