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 @ 2023-05-15 19:37  咸鱼Y  阅读(499)  评论(0编辑  收藏  举报