.NET5 WebAPI项目启动报错:无法加载System.Runtime, Version=6.0.0.0
解决方案:.NET5项目加载.NET6 System.Runtime程序集失败
针对你遇到的问题,以下是针对性的排查和解决步骤:
清理NuGet全局缓存
缓存的.NET6相关包可能导致项目错误引用,执行以下命令清理:dotnet nuget locals all --clear清理完成后重新还原项目包:
dotnet restore检查项目.runtimeconfig.json配置
项目生成后会在输出目录生成该文件,打开后检查runtimeOptions节点:- 确认
framework.name为Microsoft.NETCore.App,framework.version为.NET5的版本(如5.0.17) - 移除任何指向.NET6 SDK或运行时的
additionalProbingPaths路径
- 确认
锁定.NET SDK版本
在解决方案根目录创建或修改global.json文件,强制指定使用.NET5 SDK:{ "sdk": { "version": "5.0.408", "rollForward": "disable" } }替换
version为你安装的.NET5具体版本号修正绑定重定向配置
打开项目的web.config,检查<runtime>节点下的<assemblyBinding>:- 如果存在针对
System.Runtime的绑定重定向指向6.0.0.0,删除该配置或修改为5.0.0.0版本:<dependentAssembly> <assemblyIdentity name="System.Runtime" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-5.0.0.0" newVersion="5.0.0.0" /> </dependentAssembly>
- 如果存在针对
调整系统环境变量优先级
打开系统环境变量的PATH:- 将.NET5的SDK路径(如
C:\Program Files\dotnet\sdk\5.0.xxx)移至.NET6路径之前 - 暂时移除.NET6的路径条目,测试项目是否能正常启动
- 将.NET5的SDK路径(如
检查Visual Studio调试环境
右键项目→属性→调试:- 查看“环境变量”区域,确认没有设置
DOTNET_ROOT指向.NET6运行时 - 若存在相关变量,删除或修改为.NET5的运行时路径
- 查看“环境变量”区域,确认没有设置
错误信息:无法加载文件或程序集'System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'。系统找不到指定文件
内容的提问来源于stack exchange,提问作者Dimitry
相关产品推荐
相关产品推荐

