.NET Framework4.6升级到.NET6后System.ComponentModel.Primitives加载报错求助
根本原因分析及解决办法
核心问题
- 绑定重定向机制不兼容:.NET 6(属于.NET Core/.NET 5+系列)不再使用.NET Framework的
app.config绑定重定向机制,你添加的配置完全不会被.NET 6运行时识别,因此重定向无效。 - NuGet包安装错误:
System.ComponentModel.Primitives在.NET 6中是框架自带的核心程序集,不需要通过NuGet手动安装。你安装的4.3.0版本是针对.NET Framework/.NET Standard的兼容包,其中包含的是仅用于编译的引用程序集,无法在运行时加载——这正是错误提示“Reference assemblies should not be loaded for execution”的直接原因。 - 依赖冲突:手动安装低版本NuGet包后,项目同时引用了框架自带的6.0版本程序集和NuGet的4.3.0版本引用程序集,运行时加载逻辑混乱,导致无法正确加载所需的实现程序集。
解决步骤
- 卸载NuGet中的
System.ComponentModel.Primitives包:在NuGet包管理器中找到该包并卸载,确保项目不再引用这个兼容版本。 - 删除
app.config中对应的绑定重定向配置:.NET 6不支持该配置,留着反而会造成混淆。 - 清理并重建项目:删除
bin和obj目录,重新编译项目,确保运行时加载的是.NET 6框架自带的程序集。
内容的提问来源于stack exchange,提问作者Val
相关产品推荐
相关产品推荐

