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

升级Azure.Identity至1.8.x导致Azure函数启动时出现Microsoft.Identity.Client错误

Azure.Identity升级后Azure Functions版本冲突问题分析与解决

成因分析

  • Azure.Identity 1.8.0/1.8.1依赖Microsoft.Identity.Client 4.46.0,但Function A中同时存在由Microsoft.Data.SqlClient引入的4.21.1版本。旧版本的Microsoft.Identity.Client未包含Microsoft.Identity.Client.Extensibility.AppTokenProviderResult类型,当程序集加载逻辑绑定到旧版本时,就会触发类型加载异常。
  • Function B能正常运行,大概率是因为其依赖解析过程中高版本的Microsoft.Identity.Client被优先选择,或发布打包时旧版本程序集未被纳入部署目录,规避了版本冲突。

进一步排查方法

  • 查看项目的packages.lock.json或project.assets.json文件,确认Microsoft.Identity.Client的最终解析版本,排查是否存在强制绑定到4.21.1的配置。
  • 对比Function A和B的发布输出目录,检查实际部署的Microsoft.Identity.Client.dll版本是否一致,确认旧版本是否仅出现在Function A中。
  • 执行dotnet list package --include-transitive命令,分别生成两个函数应用的完整依赖树,对比两者的依赖差异,找出导致版本解析不同的间接引用包。
  • 启用程序集绑定日志:本地调试时使用融合日志查看器(Fusion Log Viewer),Azure部署时添加应用设置COMPlus_LogEnableBindings=1,追踪加载旧版本程序集的具体触发路径。

解决方案建议

1. 显式引用高版本Microsoft.Identity.Client

直接在Function A的项目文件中添加对Microsoft.Identity.Client 4.46.0(或更高兼容版本)的显式引用,强制NuGet使用该版本覆盖所有间接引用的旧版本:

<PackageReference Include="Microsoft.Identity.Client" Version="4.46.0" />

这是最直接有效的解决方式,因为Azure.Identity 1.8.x明确依赖该版本提供的类型。

2. 配置程序集绑定重定向

在项目文件中添加程序集绑定重定向规则,将所有对Microsoft.Identity.Client的引用重定向到4.46.0版本:

<PropertyGroup>
  <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
  <GenerateBindingRedirectsOutputType>true</GenerateBindingRedirectsOutputType>
</PropertyGroup>
<runtime>
  <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
    <dependentAssembly>
      <assemblyIdentity name="Microsoft.Identity.Client" publicKeyToken="0a613f4dd989e8ae" culture="neutral" />
      <bindingRedirect oldVersion="0.0.0.0-4.46.0.0" newVersion="4.46.0.0" />
    </dependentAssembly>
  </assemblyBinding>
</runtime>

注意:隔离进程模型的Azure Functions需额外配置确保绑定重定向生效。

3. 升级Microsoft.Data.SqlClient

检查Function A中Microsoft.Data.SqlClient的版本,尝试升级到最新稳定版,新版本通常兼容更高版本的Microsoft.Identity.Client,从根源上消除版本冲突。

内容的提问来源于stack exchange,提问作者Davide De Santis

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 08:25:27