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

MacOS High Sierra中Visual Studio for Mac编译报错:找不到Microsoft.NET.Sdk

解决MacOS High Sierra上Xamarin/ASP.NET项目编译错误的步骤

你遇到的这两个错误——找不到Microsoft.NET.Sdk和Microsoft.CSharp.targets——大概率是Mono/.NET Core安装不完整、VS for Mac配置冲突或者版本兼容性问题导致的,下面是一步步的排查和修复方案:

1. 先验证基础组件的完整性

首先确认Mono和.NET Core是否正常安装:

  • 打开终端,运行以下命令检查Mono版本:
    mono --version
    
    输出应该显示版本为5.10.1(和错误日志里的路径匹配),如果命令报错或者版本不对,说明Mono安装有问题。
  • 再检查.NET Core SDK:
    dotnet --list-sdks
    
    确保列表里有你创建项目时选择的.NET版本(比如Xamarin Forms当时通常需要.NET Core 2.1/2.2)。

2. 修复Mono安装(解决MSB4019错误)

错误里提到的Microsoft.CSharp.targets是Mono xbuild的核心文件,缺失说明Mono安装不完整或损坏:

  • 先卸载现有Mono:打开/Library/Frameworks/Mono.framework/Versions,删除5.10.1目录。
  • 不要单独安装独立版Mono,直接通过VS for Mac的安装程序重新安装配套的Mono组件:打开VS for Mac,点击菜单栏的Visual Studio > Check for Updates,在更新面板里确保"Mono Framework"组件已安装并更新到对应版本。

3. 修复.NET Core SDK关联(解决Microsoft.NET.Sdk找不到的错误)

虽然SDK Manager显示了路径,但VS for Mac可能没正确加载:

  • 关闭VS for Mac,找到你的项目目录,删除.vs隐藏文件夹(如果存在),重新打开项目尝试编译。
  • 进入项目目录,在终端运行:
    dotnet restore
    
    手动恢复项目依赖,之后回到VS for Mac重新编译。
  • 如果还是不行,卸载当前的.NET Core SDK,下载和VS for Mac版本兼容的SDK重新安装(比如VS for Mac 7.6对应.NET Core 2.1)。

4. 重置VS for Mac配置

有时候配置文件损坏会导致组件识别异常:

  • 关闭VS for Mac,删除以下两个目录:
    ~/Library/Preferences/VisualStudio/7.0  # 版本号对应你的VS for Mac版本,比如7.6的话可能是7.6
    ~/Library/Caches/VisualStudio/7.0
    
  • 重新打开VS for Mac,它会自动生成新的配置文件,之后再尝试创建项目。

5. 检查项目模板兼容性

创建项目时,确保选择的.NET版本和你安装的SDK完全匹配——比如如果你只装了.NET Core 2.1,就不要选择.NET Core 3.0的模板,MacOS High Sierra 10.13.4对高版本.NET Core的支持有限。

额外注意事项

  • 不要同时安装独立版Mono和VS for Mac自带的Mono,两者容易冲突导致组件缺失。
  • 安装所有组件时确保网络稳定,避免安装中断导致文件损坏。

内容的提问来源于stack exchange,提问作者jose luis gonzalez clua

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 07:27:13