<p>最稳妥装.NET SDK 8.0.100(LTS);维护老项目则按global.json中version字段安装对应版本;Windows用户须下载离线完整包,禁用OmniSharp并启用C# LSP,配置launch.json关键字段,确保终端PATH正确且重启生效。</p>

装哪个.NET SDK版本最稳妥
VSCode本身不带.NET运行时,得手动装SDK。别直接下最新版——dotnet --list-sdks 显示多个版本时,C#扩展常默认挑最高版,但项目里global.json锁的是6.0.100,结果dotnet build报错“无法解析目标框架”。
- 新项目优先装
8.0.100(LTS,2023年11月起官方主推) - 维护老项目?先查项目根目录有没有
global.json,里面"version"字段写的是啥,就装对应SDK - Windows用户避开
dotnet-sdk-8.0.1xx-win-x64.exe这类“Web Installer”,它可能卡在静默下载环节;直接下dotnet-sdk-8.0.100-win-x64.exe(离线完整包)
C#扩展必须关掉“自动启用 OmniSharp”
VSCode装了 C# Dev Kit 或旧版 C# 扩展后,常出现“找不到命名空间”“断点不命中”,根源是它默认用内置的 OmniSharp,而.NET 8+项目需要语言服务器(Razor、C# LSP)走 dotnet CLI 调用,不是独立进程。
- 打开设置(
Ctrl+,),搜omnisharp.useGlobalMono→ 设为never - 再搜
csharp.extension.autoStart→ 关掉 - 重启VSCode,等右下角出现
.NET 8.0.100提示,且状态栏显示C# (LSP)而非OmniSharp
launch.json调试配置不写全会连不上进程
按F5直接跑,控制台一闪而过,或者提示 Could not find the task 'build',本质是没告诉VSCode:用什么命令启动、监听哪个端口、是否附加到已运行进程。
- 项目根目录建
.vscode/launch.json,核心字段不能少:type: "coreclr"、request: "launch"、program指向bin/Debug/net8.0/xxx.dll - 控制台程序加
"console": "integratedTerminal",否则输出看不到 - Web项目(如ASP.NET Core)必须设
"env": { "ASPNETCORE_ENVIRONMENT": "Development" },不然IConfiguration读不到appsettings.Development.json
终端里dotnet命令失效的三个常见原因
VSCode集成终端敲 dotnet --version 报“command not found”,不是环境变量没配,而是终端启动时没加载Shell配置文件。
- macOS:检查
~/.zshrc里是否有export PATH="$PATH:/usr/local/share/dotnet",然后在VSCode里用Cmd+Shift+P→Developer: Restart Backend - Windows:PowerShell终端需执行
$env:Path += ";C:\Program Files\dotnet",但更稳的是改系统环境变量,重启VSCode - Linux:如果用
sudo apt install dotnet-sdk-8.0装的,路径是/usr/share/dotnet,不是/opt/dotnet——手抖写错路径就会失效
路径和版本对不上,是90%环境配置失败的起点。别信“装完就能用”,先关掉所有终端窗口,重开一个,跑dotnet --list-runtimes和dotnet --list-sdks,两个都出结果才算真正接上了。










