阅读背景:

skiasharp在阿里云Windows server 2016上部署时提示The type initializer for 'SkiaSharp.SKAbstractManagedStream' threw an exception. 错误

来源:互联网 

应用环境及问题描述:

Windows Server 2016,.Net core 2.1, Skiasharp作为跨平台的图像处理组件在生成缩略图时出错,本地测试都是正常的,部署到服务器无法生成缩略图。
用的时阿里云(aliyun)的Windows Server 2016. IIS部署,除了安装 .net core 2.1,没有安装其他任何东西。
 
首先排除了权限问题,因为图片保存是不存在问题。
 
然后记录下错误日志:

The type initializer for 'SkiaSharp.SKAbstractManagedStream' threw an exception. 

考虑到本地不同服务器部署了多个实例均正常,只能怀疑环境了。

偶然搜到其他软件在安装时提示类似错误,就是通过安装Visual C++解决的,就去官网找部署环境。

问题原因
Skiasharp依赖 Windows上部署时依赖VisualC++, 需要下载安装Visual C++
 
以下内容来自SkiaSharp:https://github.com/mono/SkiaSharp

Using SkiaSharp

SkiaSharp is available as a convenience NuGet package, to use install the package like this:

nuget install SkiaSharp

Make sure the Visual C++ Redistributable for Visual Studio 2015 is installed if this error occurs on Windows:

Unable to load DLL 'libSkiaSharp.dll': The specified module could not be found.

At this point in time, we do not ship a native Linux binary in the NuGet package, but you can either download our internal Linux binaries attached to the specific release or you can build your own using the directions below.


分享到: