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

Azure Functions项目无法加载NuGet包中的System.Memory.Data文件

Azure Functions: System.Memory.Data加载失败及'provider'参数为空问题解决

问题详情

整合旧WebJobs和Worker角色到新Azure Functions项目时,控制台持续抛出错误:

System.Private.CoreLib: 调用的目标发生了异常。Microsoft.Azure.WebJobs.Extensions.Storage.Queues: 无法加载文件或程序集'System.Memory.Data, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'。系统找不到指定的文件。
值不能为空。(参数 'provider')

环境参数:

  • Visual Studio 17.11.5
  • Azure Functions and Web Jobs工具 17.11.231.19466
  • .NET 6.0

已尝试无效操作:

  • 从头重建.NET 6.0项目,问题暂时解决后复发
  • 测试多种NuGet包版本组合(Microsoft.Azure.WebJobs.Extensions.Storage 5.3.3、Microsoft.NET.Sdk.Functions 4.5.0)
  • 替换为Microsoft.Azure.WebJobs.Extensions.Storage.Queues,无改善

可行解决建议

1. 显式安装指定版本的System.Memory.Data

直接在项目中安装错误提示的6.0.0版本包,强制引入该依赖:

Install-Package System.Memory.Data -Version 6.0.0

或者手动在项目.csproj文件中添加引用:

<PackageReference Include="System.Memory.Data" Version="6.0.0" />

2. 排查并修复NuGet依赖冲突

  • 打开NuGet包管理器控制台,执行Get-Package -ProjectName <你的项目名称>,查看所有包的依赖链,确认是否有其他包间接引用了不同版本的System.Memory.Data
  • 在解决方案级NuGet包管理界面,统一所有项目中System.Memory.Data的版本为6.0.0,消除版本不一致问题

3. 彻底清理重建项目

  • 删除项目目录下的bin和obj文件夹
  • 在Visual Studio中依次执行「清理解决方案」→「重建解决方案」
  • 清除NuGet缓存:通过「工具」→「选项」→「NuGet包管理器」→「常规」,点击「清除所有NuGet缓存」

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

如果项目存在app.config或web.config,添加绑定重定向配置,确保程序集加载指向正确版本:

<configuration>
  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="System.Memory.Data" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
      </dependentAssembly>
    </assemblyBinding>
  </runtime>
</configuration>

5. 验证工具版本兼容性

尝试更新Azure Functions and Web Jobs工具到最新稳定版,或者回退到与.NET 6.0更匹配的旧版本,排查工具版本与NuGet包的兼容性问题。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 04:25:12