.net core3.1 文件导出报错The type initializer for 'Gdip' threw an exception 的解决方法

.net Core允许在 Centos7 上,使用 System.Draw.Common类库时,报以下错误:

复制代码
 "Class":"System.TypeInitializationException",
        "Message":"Unable to load DLL 'libgdiplus': The specified module could not be found.",
        "StackTrace":" at System.Drawing.SafeNativeMethods.Gdip.GdipCreateBitmapFromFile(String filename, IntPtr& bitmap)
at System.Drawing.Bitmap..ctor(String filename, Boolean useIcm)
at Ims.Dsl.Utility.ImageUtils.GetResolution(String filePath)
at Ims.Dsl.Persistence.Service.Impl.TemplateService.CreateUploadImage(IList`1 files, String createIp)
at Ims.Dsl.RestApi.Controllers.v1.TemplateController.UploadImage()
复制代码

解决方案如下:

复制代码
yum install autoconf automake libtool
yum install freetype-devel fontconfig libXft-devel
yum install libjpeg-turbo-devel libpng-devel giflib-devel libtiff-devel libexif-devel
yum install glib2-devel cairo-devel
git clone https://github.com/mono/libgdiplus
cd libgdiplus
./autogen.sh
make
make install
复制代码

创建符号链接:

ln -s /usr/local/lib/libgdiplus.so /usr/lib64/libgdiplus.so
ln -s /usr/local/lib/libgdiplus.so /usr/libgdiplus.so

方法亲测有效

转载:https://www.cnblogs.com/CnKker/p/11418370.html

原文地址:https://www.cnblogs.com/axinno1/p/14867302.html