Linux .NET Core 报The type initializer for 'Gdip' threw an exception的解决方案
2022-06-15The type initializer for 'Gdip' threw an exception. 解决方案
linux下报这个错误是因为没有安装libgdiplus类库,以下解决方案是基于docker
我们可以在当前容器内执行以下命令安装libgdiplus库,但是容器删除了之后就没有了,最好是基于基础镜像来创建一个包括libgdiplus的镜像,例如本解决方案是基于 asp.net core 6.0的官方镜像制作
#拉起官方镜像
docker pull mcr.microsoft.com/dotnet/aspnet:6.0
#进入镜像
docker run -it mcr.microsoft.com/dotnet/aspnet:6.0
#首先更新apt-get
apt-get update -y
#如果出现Temporary failure resolving 'deb.debian.org' 重启下docker即可
systemctl restart docker
#安装libgdiplus类库
apt-get install -y libgdiplus
#退出镜像
exit
#列出最新 container
docker ps -n 1
#找到对应的CONTAINER ID , 例如:344424e867
docker commit 344424e867 myaspnet6.0
#查看镜像
docker images