.NET 7 ASP.NET API迁移报错:Add-Migration与Install-Package未被识别
解决.NET 7 ASP.NET API中
add-migration未识别的问题 1. 先理清两种工具的命令差异
你之前混淆了Package Manager Console(PMC)和.NET CLI的命令规则,这是核心问题:
- PMC环境(Visual Studio内置控制台):安装工具用
Install-Package,迁移命令是Add-Migration InitialCreate - 终端/命令行(.NET CLI):安装工具用
dotnet add package,迁移命令是dotnet ef migrations add InitialCreate
你在CLI里输入install-package肯定报错,这是PMC专属命令。
2. 按工具类型分步解决
方式一:用Visual Studio的PMC操作
- 打开工具 > NuGet包管理器 > 包管理器控制台,确认顶部“默认项目”下拉选中你的ASP.NET API项目
- 先验证工具是否安装:
Get-Package Microsoft.EntityFrameworkCore.Tools - 若未安装,执行:
(把Install-Package Microsoft.EntityFrameworkCore.Tools -Version 7.0.xx替换成和你项目中EF Core版本匹配的数字,比如7.0.14) - 直接执行迁移命令:
Add-Migration InitialCreate
方式二:用.NET CLI操作
- 打开终端(Visual Studio内置终端或系统命令行),切换到你的API项目根目录(有
.csproj文件的文件夹) - 验证工具是否已安装:
dotnet list package - 若未安装,执行:
dotnet add package Microsoft.EntityFrameworkCore.Tools --version 7.0.x - 若执行
dotnet ef提示未识别,说明全局EF CLI工具没装,先安装:
安装完成后重启终端,再执行迁移:dotnet tool install --global dotnet-ef --version 7.0.xdotnet ef migrations add InitialCreate
3. 项目文件配置检查
打开API项目的.csproj文件,确保包含以下配置(没有就手动添加):
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="7.0.x" /> <PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="7.0.x"> <PrivateAssets>all</PrivateAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> </PackageReference>
保存后右键项目选择还原NuGet包,再清理重建项目。
4. 额外排查点
- 确认Visual Studio版本是2022 17.4及以上(才支持.NET 7)
- 执行
dotnet --version验证系统环境里的.NET SDK是7.x版本 - 若用VS Code,确保安装了C#扩展,终端用的是正确的.NET环境
内容的提问来源于stack exchange,提问作者W.H
相关产品推荐
相关产品推荐

