EF Core执行Add-Migration添加迁移报错:可执行文件不适配OS平台
修复方案
该报错为实体框架迁移工具加载了与当前操作系统/运行时架构不兼容的可执行文件触发,按以下优先级逐一排查即可解决:
- 校验项目平台配置
打开解决方案配置管理器,确认启动项目、存放DbContext的数据项目的目标平台与当前设备系统架构一致:64位系统不要强制指定项目目标为x86,ARM架构Windows设备不要强制指定目标为x64。修改后清理解决方案、重新生成,再执行Add-Migration Initial命令。 - 对齐EF相关包版本
打开NuGet包管理器,确认项目中所有EF相关包版本完全一致,禁止跨大版本混用:- 主框架包:
Microsoft.EntityFrameworkCore(EF6为EntityFramework) - 工具包:
Microsoft.EntityFrameworkCore.Tools(EF6为EntityFramework) - 设计时包:
Microsoft.EntityFrameworkCore.Design
版本对齐后重新生成项目重试,不要为工具类包安装平台特定的特殊版本。
- 主框架包:
- 清除损坏的工具缓存
关闭Visual Studio,删除解决方案根目录下的隐藏.vs文件夹,同时删除EF工具本地缓存(路径为%LocalAppData%\Microsoft\VisualStudio\<对应VS版本号>\EntityFrameworkTools)下的所有文件,重启VS重新生成项目后重试。 - 修正启动项目生成配置
右键启动项目打开属性面板,切到生成选项卡,取消勾选“首选32位”;直接打开项目的.csproj文件,确认<PlatformTarget>属性没有硬编码为与当前设备不兼容的架构值。 - 绕过PMC命令验证问题根因
若以上方案无效,可绕过包管理器控制台直接使用命令行工具验证:执行dotnet tool install --global dotnet-ef安装全局EF工具,进入数据项目根目录执行dotnet ef migrations add Initial,如果命令可正常运行,说明Visual Studio的PMC组件加载路径损坏,通过VS安装程序执行修复即可。
提示:ARM架构Windows设备使用EF6时会稳定触发该报错,EF6无原生ARM支持,需升级到EF Core 6.0及以上版本获得ARM原生兼容能力。
内容的提问来源于stack exchange,提问作者user3384410
相关产品推荐
相关产品推荐

