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
标签:core,exception,dotnet6,System,initializer,报错,Gdip,type,threw From: https://www.cnblogs.com/CXY-Blog/p/17402883.html