M1 Mac下VS Code启动OmniSharp遇System.BadImageFormatException问题求助
解决M1 Mac上VS Code OmniSharp加载System.BadImageFormatException错误的方案
强制OmniSharp使用现代.NET运行时
打开VS Code的设置(快捷键Cmd+,),搜索并添加配置:"omnisharp.useModernNet": true这个配置会让OmniSharp调用你当前安装的适配M1架构的.NET SDK,而非扩展自带的旧版x86运行时,从根源避免架构不兼容问题。
清理残留缓存与项目文件
完全关闭VS Code,执行以下操作:- 删除OmniSharp缓存目录:
rm -rf ~/Library/Caches/OmniSharp - 进入项目根目录,删除
.vs、obj、bin文件夹,这些文件夹可能残留了之前架构不兼容的编译产物。
- 删除OmniSharp缓存目录:
确认.NET SDK环境配置
打开终端,运行dotnet --info,确认输出里的Architecture字段为arm64(如果选择使用x86 SDK则为x64,但M1原生arm64兼容性更好)。
若存在多个SDK版本,可在项目根目录创建global.json文件指定版本:{ "sdk": { "version": "6.0.401", "rollForward": "latestMinor" } }重新安装并配置C#扩展
卸载VS Code中的C#扩展,重启VS Code后重新安装最新版。打开项目时,确保选择"信任工作区",允许扩展加载依赖组件。关闭VS Code的Rosetta转译
右键访达中的VS Code图标,选择"显示简介",取消勾选"使用Rosetta打开"。让VS Code以arm64原生模式运行,避免与arm64版.NET SDK产生架构冲突。
内容的提问来源于stack exchange,提问作者BeniaminoBaggins
相关产品推荐
相关产品推荐

