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

使用Microsoft.Graph发邮件遇System.TypeInitializationException问题求助

解决Microsoft.Graph依赖System.Memory版本冲突问题

核心问题

你遇到的是典型的.NET程序集版本绑定冲突:Azure.Core组件依赖的System.Memory 4.0.1.1与项目中实际加载的版本不匹配,导致程序集加载失败。添加绑定重定向后反而找不到,大概率是重定向规则配置错误。

针对你的问题逐一解答

  1. 是否需要向包含Microsoft.Graph的库安装System.Memory?

    • 不需要手动单独安装。Microsoft.Graph的NuGet包已经通过依赖链引入了适配的System.Memory版本,手动单独安装反而可能打乱依赖关系。如果项目确实缺失该程序集,直接通过NuGet还原所有依赖即可,不要单独安装。
  2. 是否要删除绑定重定向后执行选项1?

    • 先删除你之前添加的绑定重定向配置,再尝试还原依赖。之前的重定向规则可能版本号配置错误,导致.NET无法找到对应程序集。删除错误配置后,让.NET自动处理版本绑定,或者后续再配置正确的重定向规则。

针对NuGet仅提供4.5.x版本的解决办法

System.Memory 4.5.x版本是向下兼容4.0.1.1的,你可以通过以下方式解决:

  • 配置正确的绑定重定向:在项目的app.config(桌面应用)或web.config(Web应用)中添加如下规则,将旧版本定向到你实际安装的4.5.x版本:
<runtime>
  <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
    <dependentAssembly>
      <assemblyIdentity name="System.Memory" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
      <bindingRedirect oldVersion="0.0.0.0-4.0.1.1" newVersion="4.5.5" />
    </dependentAssembly>
  </assemblyBinding>
</runtime>

注意把newVersion的值替换成你项目中实际引用的System.Memory版本号。

  • 更新Microsoft.Graph到最新稳定版:新版Microsoft.Graph已经更新了依赖的Azure.Core组件,不再依赖旧版System.Memory,能从根源上避免版本冲突。

  • 清理并重新还原NuGet依赖:

    1. 删除项目目录下的obj、bin文件夹(.NET Core/.NET 5+)或packages文件夹(.NET Framework)
    2. 在Visual Studio的NuGet包管理器中执行“还原”操作,让NuGet重新下载所有依赖的正确版本。
  • 升级项目目标框架:如果你的项目目标框架是.NET Framework 4.6.1及以下,升级到4.6.2或更高版本。高版本框架自带的程序集兼容性更好,能减少这类版本冲突问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 23:17:33