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

.NET 8 MAUI解决方案在VS for Mac 17.6.7编译失败,命令行正常,如何解决?

问题描述

我有一个从.NET 7升级至.NET 8的MAUI解决方案,在Visual Studio for Mac 17.6.7中编译失败,但通过dotnet命令行执行build操作可成功编译。

Visual Studio for Mac报错信息

/usr/local/share/dotnet/sdk/7.0.403/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.TargetFrameworkInference.targets(5,5): Error NETSDK1045: The current .NET SDK does not support targeting .NET 8.0. Either target .NET 7.0 or lower, or use a version of the .NET SDK that supports .NET 8.0. Download the .NET SDK from https://aka.ms/dotnet/download (NETSDK1045) (Doma.SharedInterfaces)

dotnet命令行编译结果

进入解决方案目录执行dotnet build后编译成功,输出如下:

MSBuild version 17.8.3+195e7f5a3 for .NET
  Determining projects to restore...
  All projects are up-to-date for restore.
  Doma.SharedInterfaces -> /Users/mwardell/src/testmasters/DomaFramework/Doma.SharedInterfaces/bin/Debug/net8.0/Doma.SharedInterfaces.dll
  Doma.DataLayer -> /Users/mwardell/src/testmasters/DomaFramework/Doma.DataLayer/bin/Debug/net8.0/Doma.DataLayer.dll
  Doma.DataLayer.Tests -> /Users/mwardell/src/testmasters/DomaFramework/Doma.DataLayer.Tests/bin/Debug/net8.0/Doma.DataLayer.Tests.dll
  Detected signing identity:

    Bundle Id: mil.navy.doma
    App Id: mil.navy.doma
  Doma -> /Users/mwardell/src/testmasters/DomaFramework/Doma/bin/Debug/net8.0/Doma.dll
  Detected signing identity:

    Bundle Id: mil.navy.doma
    App Id: mil.navy.doma
  Doma -> /Users/mwardell/src/testmasters/DomaFramework/Doma/bin/Debug/net8.0-maccatalyst/maccatalyst-arm64/Doma.dll
  Doma -> /Users/mwardell/src/testmasters/DomaFramework/Doma/bin/Debug/net8.0-ios/iossimulator-arm64/Doma.dll
  Doma -> /Users/mwardell/src/testmasters/DomaFramework/Doma/bin/Debug/net8.0-android/Doma.dll
  Doma.SharedInterfaces -> /Users/mwardell/src/testmasters/DomaFramework/Doma.SharedInterfaces/bin/Debug/net8.0/Doma.SharedInterfaces.dll
  Doma.DataLayer -> /Users/mwardell/src/testmasters/DomaFramework/Doma.DataLayer/bin/Debug/net8.0/Doma.DataLayer.dll
  Optimizing assemblies for size may change the behavior of the app. Be sure to test after publishing. See: https://aka.ms/dotnet-illink
  Optimizing assemblies for size may change the behavior of the app. Be sure to test after publishing. See: https://aka.ms/dotnet-illink
  Doma.Tests -> /Users/mwardell/src/testmasters/DomaFramework/Doma.Tests/bin/Debug/net8.0/Doma.Tests.dll

Build succeeded.
    0 Warning(s)
    0 Error(s)

Time Elapsed 00:00:09.63
解决方案

可以让该解决方案在Visual Studio for Mac中正常编译,具体操作如下:

1. 升级Visual Studio for Mac版本

Visual Studio for Mac 17.6.7默认绑定.NET 7 SDK,不支持.NET 8项目编译。需将IDE升级至17.7及以上版本,这类版本已原生适配.NET 8 SDK。

2. 手动指定IDE使用.NET 8 SDK(无需升级IDE时)

  • 打开Visual Studio for Mac,点击顶部菜单栏Visual Studio -> Settings
  • 在设置窗口选择Projects -> .NET Runtimes
  • 在已安装的SDK列表中找到.NET 8.0版本,设为默认SDK
  • 重启IDE后重新加载解决方案并编译

3. 检查项目与全局SDK配置

  • 逐个打开项目的.csproj文件,确认<TargetFramework>节点值为net8.0(MAUI项目需确保多目标框架如net8.0-android、net8.0-ios等配置正确)
  • 若解决方案根目录存在global.json文件,检查其sdk.version是否指定了正确的.NET 8版本,示例:
    {
      "sdk": {
        "version": "8.0.100"
      }
    }
    

4. 清理恢复后重新编译

  • 在Visual Studio for Mac中点击Build -> Clean All
  • 接着点击Build -> Restore NuGet Packages
  • 最后执行编译操作

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 17:40:57