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

posted @   咸鱼Y  阅读(792)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
· 零经验选手,Compose 一天开发一款小游戏!
点击右上角即可分享
微信分享提示