VSCode C#扩展报错找不到x86_64版.NET 6 SDK,求解决
问题描述
VSCode的C#扩展启动时触发错误:ERROR A .NET 6 SDK for x86_64 was not found. Please install the latest x86_64 SDK from https://dotnet.microsoft.com/en-us/download/dotnet/6.0
(中文翻译:未找到适用于x86_64的.NET 6 SDK,请安装最新的x86_64版本SDK)
已安装.NET 6和7版本SDK,尝试重新安装提示的SDK、多次重启C#扩展后问题仍未解决。
dotnet --info输出信息
.NET SDK:
版本: 7.0.102
提交哈希: 4bbdd14480运行时环境:
操作系统名称: Windows
操作系统版本: 10.0.22000
操作系统平台: Windows
RID: win10-x86
基础路径: C:\Program Files (x86)\dotnet\sdk\7.0.102\宿主:
版本: 7.0.2
架构: x86
提交哈希: d037e070eb已安装的.NET SDK:
6.0.406 [C:\Program Files (x86)\dotnet\sdk]
7.0.102 [C:\Program Files (x86)\dotnet\sdk]已安装的.NET运行时:
Microsoft.AspNetCore.App 6.0.14 [C:\Program Files (x86)\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 7.0.2 [C:\Program Files (x86)\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.NETCore.App 3.1.16 [C:\Program Files (x86)\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 6.0.14 [C:\Program Files (x86)\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 7.0.2 [C:\Program Files (x86)\dotnet\shared\Microsoft.NETCore.App]
Microsoft.WindowsDesktop.App 3.1.16 [C:\Program Files (x86)\dotnet\shared\Microsoft.WindowsDesktop.App]
Microsoft.WindowsDesktop.App 6.0.14 [C:\Program Files (x86)\dotnet\shared\Microsoft.WindowsDesktop.App]
Microsoft.WindowsDesktop.App 7.0.2 [C:\Program Files (x86)\dotnet\shared\Microsoft.WindowsDesktop.App]发现的其他架构:
x64 [C:\Program Files\dotnet],已注册到 [HKLM\SOFTWARE\dotnet\Setup\InstalledVersions\x64\InstallLocation]环境变量: 未设置
global.json文件: 未找到
了解更多信息: https://aka.ms/dotnet/info
下载.NET: https://aka.ms/dotnet/download
问题分析
从输出可见,当前系统默认使用x86架构的.NET SDK(基础路径指向C:\Program Files (x86)\dotnet),但C#扩展要求的是x64架构的.NET 6 SDK。尽管系统中存在x64版本的dotnet目录,但未被设置为优先选项,导致扩展无法检测到对应架构的SDK。
解决步骤
- 安装x64版.NET 6 SDK:确保已下载并安装x64架构的.NET 6 SDK安装包。
- 指定VSCode使用x64 dotnet路径:打开VSCode设置(
Ctrl+,),搜索.NET: Dotnet Path,设置为C:\Program Files\dotnet\dotnet.exe。 - 调整环境变量优先级:在系统环境变量
Path中,将C:\Program Files\dotnet移至C:\Program Files (x86)\dotnet上方,确保系统优先调用x64版本。 - 通过global.json指定架构:在项目根目录创建
global.json文件,内容如下:{ "sdk": { "version": "6.0.406", "rollForward": "latestMinor" }, "architecture": "x64" } - 重置扩展缓存:打开命令面板(
Ctrl+Shift+P),执行C#: Reset OmniSharp命令,清除缓存后重启VSCode。
内容的提问来源于stack exchange,提问作者Lucas Ruas

