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

.NET Framework 4.7.2 WebApi无法加载System.Collections 4.0.11.0报错

解决方案

这个异常是.NET Framework 4.6升级到4.7.2后,程序集绑定规则变化、依赖复制策略变更导致的门面程序集缺失问题,可按以下步骤依次排查修复:

1. 重新生成程序集绑定重定向

  • 打开WebApi项目的「管理NuGet程序包」界面,将所有System.Collections开头的NuGet依赖统一升级到最新稳定版
  • 打开Package Manager Console,执行命令:
    Update-Package -reinstall
    
  • 执行完成后打开项目web.config,检查runtime/assemblyBinding节点下是否存在以下配置,不存在则手动添加:
    <dependentAssembly>
      <assemblyIdentity name="System.Collections" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
      <bindingRedirect oldVersion="0.0.0.0-4.0.11.0" newVersion="4.0.0.0" />
    </dependentAssembly>
    
    其余相关的System.Collections.Concurrent、System.Collections.NonGeneric等程序集也按上述格式补充绑定重定向规则。

2. 强制指定依赖复制到本地

  • 在项目的「引用」列表中找到System.Collections等缺失的程序集,右键选择「属性」,将「复制本地」属性修改为True
  • 如果引用列表中找不到对应程序集,可先通过NuGet安装System.Collections包后再调整属性

3. 强制复制所有NuGet依赖到输出目录

  • 右键项目选择「卸载项目」,再次右键选择「编辑[项目名].csproj」
  • 在顶层PropertyGroup节点中添加以下配置:
    <CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies>
    
  • 保存文件后重新加载项目,重新生成解决方案即可看到缺失的dll已经输出到bin目录

4. 检查.NET Standard兼容问题

如果项目引用了.NET Standard类库,确认类库版本不高于.NET Standard 2.0,更高版本的.NET Standard无法和.NET Framework 4.7.2完全兼容,会触发依赖加载异常。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 00:24:03