You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET Core 3.1 Web API发布Azure时EF迁移及dotnet-ef安装报错

解决ASP.NET Core 3.1 Web API发布Azure时的EF迁移工具安装错误

问题回顾

执行dotnet tool install dotnet-ef --version 3.1.32时收到兼容性错误:

Error NU1202: Package dotnet-ef 3.1.32 is not compatible with net60 (.NETFramework,Version=v6.0) / any. Package dotnet-ef 3.1.32 supports: netcoreapp3.1 (.NETCoreApp,Version=v3.1) / any
dotnet : The tool package could not be restored.

已安装.NET SDK 3.1.426和6.0.115,但系统默认使用.NET 6环境执行命令,手动设置MSBuildSDKsPath无效。

问题原因

MSBuildSDKsPath通常由当前终端加载的.NET SDK版本自动配置,dotnet CLI工具安装流程优先遵循当前目录的global.json配置或系统默认的"最新SDK版本"规则,手动设置该环境变量无法覆盖CLI的SDK版本选择逻辑。

解决方案

1. 用global.json锁定项目SDK版本

在项目根目录创建或修改global.json文件,指定使用3.1.426版本的SDK:

{
  "sdk": {
    "version": "3.1.426"
  }
}

保存后在该目录下重新执行dotnet-ef安装命令,CLI会自动使用指定的3.1 SDK环境。

2. 安装工具时直接指定目标框架

执行安装命令时添加--framework参数,明确指定适配netcoreapp3.1:

dotnet tool install dotnet-ef --version 3.1.32 --framework netcoreapp3.1

3. 临时切换终端SDK版本(快速测试)

在终端中执行以下命令,生成临时的global.json锁定SDK版本:

dotnet new globaljson --sdk-version 3.1.426 --force

随后在当前终端执行dotnet-ef安装命令即可。

额外说明

完成dotnet-ef工具安装后,若需要恢复默认SDK版本,可删除项目目录下的global.json文件。

内容的提问来源于stack exchange,提问作者NewUser

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 08:47:20