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

.NET MAUI升级到.NET 8后项目构建失败求助

解决.NET MAUI从.NET7升级到.NET8的构建失败问题

针对你遇到的NETSDK1005和NU1105错误,可尝试以下步骤排查修复:

  • 清理csproj中的重复/残留配置
    NU1105的"Sequence contains more than one element"通常源于项目文件存在重复节点。打开你的MAUI项目csproj文件:

    • 确认<TargetFrameworks>节点仅包含.NET8的目标框架,比如:
      <TargetFrameworks>net8.0-android;net8.0-ios;net8.0-maccatalyst;net8.0-windows10.0.19041.0</TargetFrameworks>
      
      删除所有残留的net7.0-*目标。
    • 检查是否存在重复的<PackageReference>节点(如Microsoft.Maui.Controls、Microsoft.Maui.Graphics),移除重复项,确保每个NuGet包仅引用一次。
  • 清理NuGet本地缓存
    执行以下命令清空所有NuGet本地缓存,避免缓存损坏导致的依赖解析问题:

    dotnet nuget locals all --clear
    

    完成后执行dotnet restore重新还原依赖。

  • 检查解决方案内的依赖项目
    如果你的解决方案包含其他类库项目,需确保这些项目也已升级到.NET8,且目标框架与MAUI项目兼容。若有项目仍使用.NET7,会导致主MAUI项目的依赖解析出错。

  • 修复Windows目标平台配置
    确认csproj中Windows相关属性配置正确,无.NET7残留:

    <WindowsPackageType>MSIX</WindowsPackageType>
    <TargetPlatformMinVersion>10.0.17763.0</TargetPlatformMinVersion>
    <TargetPlatformVersion>10.0.19041.0</TargetPlatformVersion>
    <UseWindowsForms>false</UseWindowsForms>
    <UseWPF>false</UseWPF>
    

    确保这些属性适配.NET8环境,无混合版本配置。

  • 使用CLI强制重新构建
    跳过Visual Studio的增量构建缓存,手动执行以下命令:

    dotnet clean
    dotnet restore
    dotnet build --no-incremental
    
  • 确认Global.json的SDK版本
    检查项目根目录的global.json文件(若无则新建),确保指定的SDK版本为.NET8:

    {
      "sdk": {
        "version": "8.0.100" // 替换为你已安装的.NET8 SDK版本号
      }
    }
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 02:33:38