必须安装.net sdk而非runtime,且path需包含dotnet路径;验证标准是任意路径下dotnet --list-sdks输出含8.0.400 [c:\program files\dotnet\sdk];vscode中c#扩展需关闭omnisharp、启用lsp,并确保工作区为.csproj所在目录。

VSCode + .NET 8.0 的“一键安装”并不可靠,真正能落地的只有分步验证式配置——装错组件、路径未生效、插件未适配 LSP,三者任一出问题,dotnet 命令就卡在“不是内部或外部命令”,或者 Console.WriteLine 根本不报错也不输出。
dotnet 命令失效?先确认是不是 SDK 装错了
90% 的“环境没跑起来”问题,根源不在 VSCode,而在系统根本找不到 dotnet.exe。别急着重装插件,做这三件事:
- 打开全新 PowerShell(不是旧窗口),执行
where.exe dotnet;无输出 = PATH 没生效 或 根本没装对 - 确认你下载的是
dotnet-sdk-8.0.xxx-win-x64.exe(Windows)这类离线完整包,不是dotnet-sdk-8.0.xxx-webinstaller.exe—— Web Installer 在国内极易静默失败 - 安装时必须勾选“将 .NET SDK 添加到 PATH”,装完后彻底关闭所有终端和 VSCode 再重开
- 唯一验证标准:
dotnet --list-sdks在任意路径下输出含类似8.0.400 [C:\Program Files\dotnet\sdk]的行
C# 插件显示 “Loading…” 卡死?关掉 OmniSharp 才是正解
.NET 8+ 默认走语言服务器协议(LSP),但 VSCode 的 C# 扩展(ms-dotnettools.csharp)仍默认启动旧版 OmniSharp 进程,结果就是智能提示失效、断点不命中、引用灰色不可跳转。
- 打开设置(
Ctrl+,),搜omnisharp.useGlobalMono→ 设为never - 再搜
csharp.extension.autoStart→ 关掉 - 重启 VSCode,等右下角状态栏显示
.NET 8.0.400和C# (LSP)(不是OmniSharp)才算生效 - 如果首次打开项目仍卡在
Starting...,手动删掉%USERPROFILE%\.omnisharp\目录再试
Code Runner 能跑单文件,但 launch.json 的 program 字段不能乱写
用 Code Runner 快速验证没问题,但真要调试(F5),launch.json 的 program 字段必须严格匹配编译产物路径:
- 错误写法:
"program": "${workspaceFolder}/Program.cs"→ 报Cannot launch program; setting 'program' must be an absolute path to the executable - 正确写法:
"program": "${workspaceFolder}/bin/Debug/net8.0/MyApp.dll" - 这个路径依赖两个前提:①
.csproj中<targetframework>net8.0</targetframework>与dotnet --list-sdks输出一致;② 项目已成功构建过(dotnet build或首次 F5 自动触发),否则bin/Debug/还不存在 - VSCode 工作区必须打开的是含
.csproj的项目根目录,不是父文件夹
最易被忽略的一点:VSCode 集成终端启动时不会自动加载 Shell 配置文件(比如 ~/.zshrc 或 Windows 的系统 PATH 更新),所以即使你改了环境变量,旧终端进程也认不出来——关掉所有 VSCode 实例再重开,才是最稳的验证方式。











