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

NETSDK1045/NETSDK1004报错:已装.NET8.0.1却无法指定目标框架

.NET构建报错(NETSDK1045/NETSDK1004)修复方案

问题根源

  • net8.0.101-windows 是错误的目标框架格式:目标框架需使用运行时版本而非SDK版本,你混淆了SDK版本(8.0.101)和运行时版本(8.0.1)的概念,Windows特定目标框架的正确格式是 net8.0-windows(可附加具体Windows版本号,如net8.0-windows10.0.19041)。
  • NETSDK1045报错:SDK无法识别错误的目标框架标识,误将8.0.101判定为运行时版本,但不存在该版本的运行时。
  • NETSDK1004报错(通常提示缺少project.assets.json):删除obj/build文件夹后,因目标框架格式错误,依赖恢复流程无法生成必要的资产文件。

修复步骤

  1. 修正目标框架配置
    打开主项目的.csproj文件,将错误的配置:
    <TargetFramework>net8.0.101-windows</TargetFramework>
    
    替换为正确格式:
    <TargetFramework>net8.0-windows</TargetFramework>
    
    若需指定特定Windows版本,可使用:
    <TargetFramework>net8.0-windows10.0.19041</TargetFramework>
    
  2. 重新恢复依赖并构建
    在解决方案根目录执行命令:
    dotnet restore
    dotnet build
    
    或在VS中右键解决方案选择「恢复NuGet包」后重新构建。
  3. 验证环境匹配
    执行dotnet --list-sdks确认已安装.NET 8.0.101 SDK,执行dotnet --list-runtimes确认存在Microsoft.WindowsDesktop.App 8.0.1运行时。

补充说明

  • VS17.8.5原生支持.NET 8.0 SDK,但目标框架标识必须遵循官方规范,SDK是构建工具集,运行时是应用执行的依赖环境,二者版本号逻辑不同。
  • 若需锁定项目使用的SDK版本,可在解决方案根目录添加global.json文件:
    {
      "sdk": {
        "version": "8.0.101"
      }
    }
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 00:48:14