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

ASP.NET Core Angular项目调试时遇System.IO.FileLoadException异常求助

解决ASP.NET Core Angular应用调试时System.IO.FileLoadException问题

我之前在使用VS2017的Angular模板构建ASP.NET Core 2.0应用时,也碰到过一模一样的版本不匹配问题,给你几个亲测有效的解决办法:

1. 对齐.NET Core SDK和Runtime版本

你当前使用的Microsoft.AspNetCore.All是2.0.7,但Microsoft.NETCore.App是2.0.0,两者版本差导致依赖的程序集版本不兼容。ASP.NET Core 2.x系列中,元包和基础运行时的版本最好保持同分支的最新稳定版:

  • 下载安装.NET Core SDK 2.0.x分支的最新版本(比如2.0.9,是2.0分支的最后一个稳定版)
  • 打开项目的.csproj文件,确保RuntimeFrameworkVersion指向正确的版本,比如:
    <PropertyGroup>
      <TargetFramework>netcoreapp2.0</TargetFramework>
      <RuntimeFrameworkVersion>2.0.9</RuntimeFrameworkVersion>
    </PropertyGroup>
    
  • 重启Visual Studio,重新恢复包并构建项目

2. 启用自动程序集绑定重定向

ASP.NET Core虽然自带依赖解析,但有时候还是需要绑定重定向来解决版本冲突:

  • 在项目的.csproj文件中添加以下配置:
    <PropertyGroup>
      <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
      <GenerateBindingRedirectsOutputType>true</GenerateBindingRedirectsOutputType>
    </PropertyGroup>
    
  • 清理并重建项目,系统会自动在web.config中生成正确的绑定重定向规则,解决System.ComponentModel.Primitives的版本加载问题

3. 清理项目和NuGet缓存

有时候旧的缓存文件会干扰依赖解析:

  • 右键项目 → 选择「清理」,再右键解决方案 → 「清理解决方案」
  • 删除项目目录下的bin和obj文件夹
  • 打开NuGet包管理器控制台,运行以下命令清除本地NuGet缓存:
    dotnet nuget locals all --clear
    
  • 执行dotnet restore恢复所有依赖,再重新构建调试

4. 检查第三方包的版本冲突

如果你的项目引用了其他第三方NuGet包,可能其中某些包依赖了更高版本的System.ComponentModel.Primitives,导致版本冲突:

  • 打开「管理解决方案的NuGet包」,切换到「已安装」标签
  • 查看所有包的依赖关系,找到引用了System.ComponentModel.Primitives的包,尝试将其更新到兼容ASP.NET Core 2.0.x的版本

问题根源说明

这个异常本质是Microsoft.AspNetCore.All 2.0.7依赖的System.ComponentModel.Primitives版本(4.2.0.0)和Microsoft.NETCore.App 2.0.0自带的版本不一致,导致CLR加载程序集时找不到匹配的版本,从而抛出FileLoadException。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 10:36:54