











今天在使用 NPOI 2.8.0的时候,这版本是引用了 SkiaSharp.dll 3.119.2的,运行一直不通过。通过查询资料。SkiaSharp是要显示安装的,部署到服务器上也要显示安装。
如果项目中只有 NPOI 间接依赖 SkiaSharp,但 NuGet 没有正确把 native 库复制到输出目录,
通过 NuGet单独安装了SkiaSharp对应的版本后,本机调式代码可以正常使用了,但是发布到 windows 2012服务器上还是不行,提示
Unable to load DLL \'libSkiaSharp\' or one of its dependencies: 找不到指定的模块:
# 针对 .NET Core / .NET 5+ / .NET 8+ Install-Package SkiaSharp Install-Package SkiaSharp.NativeAssets.Win32 # Windows # 或 Linux 容器用:SkiaSharp.NativeAssets.Linux
安装后清理重新生成(删除 bin 和 obj 文件夹,再 Ctrl+Shift+B)。
| 场景 | 推荐做法 |
|---|---|
| .NET 6/8/10 新项目 | 显式安装 SkiaSharp + SkiaSharp.NativeAssets.Win32,清理重建 |
| .NET Framework 4.x | 检查 libSkiaSharp.dll 是否在输出目录,手动复制或加 Post-Build |
| 不想用 SkiaSharp | 降级 NPOI 到 2.7.2 |
| 版本冲突 | 加 bindingRedirect 重定向到实际安装版本 |
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。