You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET Framework 4.6加载libSkiaSharp原生DLL失败问题求助

解决.NET Framework 4.6中SkiaSharp libSkiaSharp二进制加载失败问题

针对你在.NET Framework 4.6环境下使用QuestPDF时遇到的SkiaSharp原生库加载失败问题,可尝试以下解决方案:

  • 确认输出目录是否包含原生库文件
    检查项目的bin/Debug或bin/Release目录下,是否存在runtimes/win-x86/native/libSkiaSharp.dll或runtimes/win-x64/native/libSkiaSharp.dll(取决于你的平台目标)。如果不存在,说明NuGet包的自动复制逻辑未生效,需要手动处理。

  • 设置项目平台目标为具体架构
    避免使用Any CPU,将项目属性中的“平台目标”设置为x86或x64,确保与SkiaSharp.NativeAssets.Win32提供的原生库架构匹配。设置后清理并重新生成项目,让NuGet自动复制对应架构的原生文件。

  • 手动复制原生库到输出目录
    从NuGet包目录(通常是解决方案目录/packages/SkiaSharp.NativeAssets.Win32.{版本号}/runtimes)找到对应架构的libSkiaSharp.dll,复制到项目输出目录的根目录,或者将该文件添加到项目中,设置其“复制到输出目录”属性为“始终复制”。

  • 强制指定原生库加载路径
    在应用启动代码中,手动指定SkiaSharp原生库的路径,示例代码:

    using SkiaSharp;
    
    // 在应用初始化时调用
    SKRuntimeLibraryLoader.LoadLibrary(@"C:\YourProject\bin\Debug\runtimes\win-x64\native\libSkiaSharp.dll");
    

    路径替换为你实际的原生库文件路径。

  • 修复NuGet包并确保版本匹配
    卸载SkiaSharp和SkiaSharp.NativeAssets.Win32包,清理项目的packages目录和输出目录,然后重新安装与QuestPDF依赖版本一致的SkiaSharp相关包,避免版本不兼容导致的加载问题。

  • 添加或更新App.config的绑定重定向
    检查项目的App.config文件,确保包含SkiaSharp的绑定重定向配置,示例:

    <configuration>
      <runtime>
        <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
          <dependentAssembly>
            <assemblyIdentity name="SkiaSharp" publicKeyToken="0738eb9f132ed756" culture="neutral" />
            <bindingRedirect oldVersion="0.0.0.0-{你的SkiaSharp版本}" newVersion="{你的SkiaSharp版本}" />
          </dependentAssembly>
        </assemblyBinding>
      </runtime>
    </configuration>
    

    将{你的SkiaSharp版本}替换为实际安装的版本号,确保所有引用SkiaSharp的组件使用同一版本。

内容的提问来源于stack exchange,提问作者ronimizy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 12:28:20