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

基于.NET Framework 4.6.1的Azure Function使用Microsoft Graph时System.Text.Json程序集加载失败问题求助

解决.NET Framework 4.6.1 Azure Function中System.Text.Json加载失败的问题

我之前也碰到过一模一样的情况——明明bin目录里躺着System.Text.Json文件,但Azure Function就是死活找不到对应的版本,折腾了好一会儿才搞定。结合你的场景,给你几个实用的解决方案:

1. 添加程序集绑定重定向

这是最常见的解决思路,.NET Framework下程序集版本不匹配的加载问题大多靠这个搞定。打开项目的App.config文件,在<runtime>节点里加入以下配置:

<runtime>
  <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
    <dependentAssembly>
      <assemblyIdentity name="System.Text.Json" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
      <!-- 把newVersion改成你bin目录里实际的System.Text.Json版本号 -->
      <bindingRedirect oldVersion="0.0.0.0-5.0.0.0" newVersion="5.0.0.0" />
    </dependentAssembly>
  </assemblyBinding>
</runtime>

注意要核对bin目录里System.Text.Json.dll的实际版本,如果是6.0.0.0或者其他版本,就把newVersion改成对应的数值。

2. 调整Microsoft Graph NuGet包版本

高版本的Microsoft Graph SDK(比如v5及以上)对.NET Core/.NET 5+的适配更好,在.NET Framework 4.6.1上容易出现依赖兼容性问题。你可以尝试降级到v4.x系列的Microsoft Graph包,这个版本对.NET Framework的支持更稳定。

3. 清理并重新生成解决方案

有时候项目缓存或者bin目录里的旧文件会干扰加载。先执行清理解决方案,再重新生成整个项目,确保所有依赖的程序集都是最新且正确复制到运行目录的。

4. 确认复制本地属性

右键项目中引用的System.Text.Json NuGet包,选择属性,把复制本地设置为True。有时候NuGet会默认不开启这个属性,导致程序集没有被正确复制到bin目录。

5. 检查Azure Function运行时配置

在项目属性里确认Azure Function的运行时版本兼容.NET Framework 4.6.1(比如v3运行时)。另外可以在local.settings.json里添加以下配置,强制启用兼容性模式:

{
  "IsEncrypted": false,
  "Values": {
    "FUNCTIONS_V2_COMPATIBILITY_MODE": "true"
  }
}

你的代码逻辑本身是没问题的,问题出在.NET Framework的程序集加载机制上,按照上面的步骤试一下,应该能解决这个问题。

内容的提问来源于stack exchange,提问作者Jimmy T.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 14:52:43