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

Apple M1芯片Mac上VS Code运行.NET Core 3.1项目报错求解

问题根因

.NET Core 3.1 官方未提供ARM64架构原生支持,在Apple M1系列芯片设备上运行该版本必须通过Rosetta 2转译执行x64版本程序。之前开启Rosetta运行VS Code未生效,核心原因是OmniSharp及C#扩展默认优先调用了ARM64版本的dotnet进程,未走x64运行时链路。
全局修改/etc/path把x64版本dotnet路径前置的方案,会导致所有目标版本≥6.0的.NET项目也默认走x64转译,损失ARM原生运行性能,不属于最优方案。Visual Studio for Mac内置了多架构SDK的自动路由逻辑,因此可以无配置自动切换运行环境,这也是同项目在VS中可正常运行、VS Code报错的核心原因。

最优配置方案

不需要修改全局PATH配置,按以下步骤操作即可实现不同版本.NET项目自动匹配对应架构的SDK:

  • 确认本地已同时安装ARM64版.NET 6+ SDK、x64版.NET Core 3.1 SDK,x64版本默认安装路径为/usr/local/share/dotnet/x64,不要调整该路径下的文件位置
  • 打开VS Code设置,搜索OmniSharp: Dotnet Path配置项,将值设置为x64版本dotnet的目录路径/usr/local/share/dotnet/x64
  • 打开VS Code的settings.json配置文件(可通过命令面板执行「Preferences: Open User Settings (JSON)」打开),添加以下配置项:
{
  "omnisharp.useModernNet": false,
  "omnisharp.dotnetPath": "/usr/local/share/dotnet/x64",
  "dotnet.dotnetPath": "/usr/local/share/dotnet/x64"
}
  • 保存配置后,通过命令面板执行「OmniSharp: Restart OmniSharp」重载服务,重启VS Code即可生效。

配置完成后,OmniSharp加载.NET Core 3.1项目时会自动通过Rosetta转译调用x64版本SDK,不会影响.NET 6+项目调用ARM64原生SDK运行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 10:42:50