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

解决Asp.NET Core项目构建报错NETSDK1061的技术咨询

修复 NETSDK1061 版本不匹配问题

这个错误的核心是项目还原(restore)阶段使用的.NET Core App版本和后续构建(build)阶段使用的版本不一致——你的项目还原时用了2.2.4,但构建时会 fallback 到2.2.1,通常和RuntimeIdentifier的设置差异或者TargetLatestRuntimePatch属性有关。结合你的项目配置,给你几个可行的修复方案:

方案1:统一还原与构建的 RuntimeIdentifier 设置

如果你的构建命令(比如CI脚本里)指定了--runtime参数(例如dotnet build --runtime win-x64),那必须在还原阶段也加上完全相同的参数:

dotnet restore --runtime win-x64
dotnet build --runtime win-x64

这样还原和构建会使用完全一致的运行时版本,避免版本不匹配。

方案2:同步 NuGet 包与运行时补丁版本

你的项目里引用了Microsoft.AspNetCore.All 2.2.0,同时开启了<TargetLatestRuntimePatch>true</TargetLatestRuntimePatch>——这个属性会让还原阶段自动拉取2.2系列最新的运行时补丁(比如2.2.4),但构建环境可能没有对应版本的SDK。你可以:

  • 将Microsoft.AspNetCore.All的版本升级到2.2系列的最新补丁版本(比如2.2.8),确保包版本和运行时版本匹配;
  • 同时确认构建环境安装了对应的.NET Core 2.2 SDK补丁版本(可以通过dotnet --info查看已安装的SDK)。

修改后的PackageReference如下:

<PackageReference Include="Microsoft.AspNetCore.All" Version="2.2.8" />

方案3:移除 TargetLatestRuntimePatch 属性

如果你不需要自动获取最新的运行时补丁,可以直接删掉项目里的<TargetLatestRuntimePatch>true</TargetLatestRuntimePatch>配置。这样还原和构建阶段都会使用与Microsoft.AspNetCore.All包版本对应的运行时版本,从根源上避免版本不匹配的问题。

方案4:在CI流程中显式同步还原与构建步骤

如果是CI环境(比如Azure DevOps、GitHub Actions)出现的问题,确保构建脚本中先执行dotnet restore,再执行dotnet build,且两者没有额外的参数差异。不要跳过还原步骤直接构建,也不要给其中某一步添加单独的RuntimeIdentifier或其他版本相关参数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 08:28:34