执行Add-Migration addIdentity报错:指定可执行文件不匹配当前OS平台
EF Core 执行Add-Migration新增Identity迁移报错解决方案
报错核心原因是EF Core工具调用的可执行文件与当前操作系统架构/运行环境不匹配,可按以下步骤逐一排查修复:
- 确认dotnet SDK架构匹配
- 卸载本地所有非对应操作系统架构的dotnet SDK(比如ARM64设备不要装x86/x64版本SDK),重新安装和设备架构一致的SDK版本
- 执行
dotnet --info查看已安装SDK列表,确保所有SDK版本架构统一,无混装情况
- 对齐EF工具和项目依赖版本
- 先卸载全局EF工具:
dotnet tool uninstall --global dotnet-ef - 安装和项目中Microsoft.EntityFrameworkCore NuGet包版本完全一致的EF工具:
dotnet tool install --global dotnet-ef --version <你的EF Core版本号> - 删除项目根目录下的
bin、obj缓存文件夹,清理解决方案后重新生成
- 先卸载全局EF工具:
- 切换迁移命令执行方式
- 放弃包管理器控制台的
Add-Migration addIdentity命令,改用dotnet CLI执行迁移:dotnet ef migrations add addIdentity - 若在WSL/容器环境下开发,需在对应环境的终端内执行命令,不要跨环境调用Windows端的EF工具
- 放弃包管理器控制台的
- 校验项目目标框架配置
- 打开项目属性页,确认目标框架版本为本地已安装的SDK版本,不要设置不存在的.NET版本
- 多目标框架项目可暂时移除其他无关的目标框架标识,仅保留当前运行环境对应的框架版本后再执行迁移
完整报错信息:
Add-Migration : Exception calling "Start" with "1" argument(s): "The specified executable is not a valid application for this OS platform." At line:1 char:1 + CategoryInfo : NotSpecified: (:) [Add-Migration], MethodInvocationException + FullyQualifiedErrorId : Win32Exception,Add-Migration
内容的提问来源于stack exchange,提问作者Радостин Атанасов
相关产品推荐
相关产品推荐

