升级至.NET 6后Linux环境运行报错:无法加载libHarfBuzzSharp库
解决.NET 6下Linux环境使用GemBox时“libHarfBuzzSharp”加载失败问题
问题原因
Linux环境用GemBox生成Excel、PDF,升级到.NET 6后出现报错:Unable to load shared library 'libHarfBuzzSharp' or one of its dependencies...。本质原因是GemBox正逐步弃用System.Drawing组件——微软已经终止了该组件在Linux平台的支持,GemBox转而依赖跨平台的HarfBuzzSharp库,但系统缺少对应的底层依赖。
解决方案
安装系统级依赖库
根据你的Linux发行版执行对应命令:
Debian/Ubuntu系:sudo apt-get update && sudo apt-get install -y libharfbuzz0b libfontconfig1RHEL/CentOS系:
sudo yum install -y harfbuzz fontconfig升级GemBox组件到最新版
确保项目里的GemBox.Spreadsheet、GemBox.Pdf等包是最新稳定版本,这些版本已经完成了对无System.Drawing环境的适配。显式配置SkiaSharp后端(可选)
部分复杂渲染场景下,可能需要手动指定使用SkiaSharp作为图形后端,初始化代码示例:ComponentInfo.SetLicense("你的GemBox许可证密钥"); // 配置SkiaSharp组件解析 SpreadsheetInfo.SetSkiaSharpCustomAssemblyResolver(assemblyName => { switch (assemblyName) { case "SkiaSharp": return Assembly.LoadFrom("SkiaSharp.dll"); case "SkiaSharp.NativeAssets.Linux": return Assembly.LoadFrom("SkiaSharp.NativeAssets.Linux.dll"); default: return null; } });
GemBox官方公告翻译
我们正在逐步移除非Windows平台上对System.Drawing(GDI)的依赖。由于微软已停止对.NET Core/.NET 5+在非Windows系统上的System.Drawing支持,我们将转向使用SkiaSharp等跨平台图形库替代,以此保障Linux、macOS等平台的兼容性与运行稳定性。
内容的提问来源于stack exchange,提问作者Bug Maker
相关产品推荐
相关产品推荐

