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

添加HtmlRenderer.PdfSharp后Azure函数加载指定程序集失败

问题解决:Azure Functions中添加HtmlRenderer.PdfSharp后出现System.Threading.AccessControl缺失错误

问题原因

你遇到的错误是因为HtmlRenderer.PdfSharp(版本1.5.0.6)依赖的底层组件引用了System.Threading.AccessControl程序集,而Azure Functions的.NET 6运行环境默认没有包含这个程序集——即使你没有直接调用GeneratePdf函数,程序集加载逻辑在扫描依赖时也会触发这个缺失检查。

解决方案

1. 手动安装System.Threading.AccessControl NuGet包

直接在项目中添加这个缺失的程序集引用:

Install-Package System.Threading.AccessControl -Version 6.0.0

或者在项目文件中添加PackageReference节点:

<PackageReference Include="System.Threading.AccessControl" Version="6.0.0" />

选择与.NET 6兼容的版本即可,安装后重新构建并运行函数,错误应该会消失。

2. 替换为.NET Core兼容的PDF生成库(可选)

HtmlRenderer.PdfSharp 1.5.0.6是较旧版本,主要针对.NET Framework设计,和.NET 6的Azure Functions环境可能存在潜在兼容性问题。如果安装上述包后仍有其他问题,可以考虑替换为更适配的库:

  • PdfSharpCore:PdfSharp的.NET Core移植版,搭配HtmlRenderer.PdfSharpCore使用,完全兼容.NET 6
  • DinkToPdf:基于wkhtmltopdf的.NET Core包装器,支持HTML转PDF(注意需部署对应平台的原生wkhtmltopdf文件)
  • iTextSharp.LGPLv2.Core:开源PDF生成库,支持HTML转PDF功能

3. 确保依赖项被正确复制到输出目录

在项目文件的<PropertyGroup>节点中添加以下配置,避免发布到Azure时丢失依赖:

<CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 17:02:42