必须安装.net sdk而非runtime,否则无法编译调试;需验证dotnet --version和--list-sdks,用file > open folder打开含.csproj的目录,安装c# dev kit并重启vscode,状态栏显示.net图标且dotnet run成功后方可f5调试。

VSCode 本身不运行 C# 代码,它只负责编辑和调试界面;真正编译、运行、调试的全是本地 dotnet CLI 和 .NET SDK 提供的工具链。装错组件(比如只装 Runtime)、路径没生效、或打开方式不对,都会导致 dotnet run 报错、F5 黑屏、IntelliSense 不亮——这不是 VSCode 的锅,是底层没就位。
必须装 .NET SDK,不是 Runtime
Runtime 只能执行已编译好的 .dll,不能编译 .cs、不能生成项目、不能支持调试器。VSCode 的 C# 扩展(包括 C# Dev Kit)依赖 SDK 里的 Roslyn 编译器、dotnet build、dotnet new 等命令。装错 = 全流程瘫痪。
- Windows:去 dotnet.microsoft.com/download 下载带 “SDK” 字样的安装包(如
.NET SDK 8.0.400),**别选 “ASP.NET Core Runtime” 或 “Desktop Runtime”** - macOS:用
brew install --cask dotnet-sdk,再补一句xcode-select --install(否则dotnet build会报MSB4236) - Ubuntu/Debian:按官方步骤添加源后,运行
sudo apt install dotnet-sdk-8.0 libicu72 libssl3;路径默认是/usr/share/dotnet - 验证命令必须都通过:
dotnet --version(输出版本号)、dotnet --list-sdks(输出 SDK 路径列表)
VSCode 必须以文件夹方式打开项目
C# 扩展(OmniSharp 或 C# Dev Kit)只在含 .csproj、.sln 或 global.json 的目录下启动。打开单个 Program.cs 文件,状态栏会显示 “C# features are disabled”,F5 必然失败。
- 正确做法:
dotnet new console -n MyApp→cd MyApp→code .,然后在 VSCode 中用 File > Open Folder 打开MyApp这个文件夹 - 如果已错开成单个文件:关掉整个 VSCode 窗口,重新以文件夹方式打开
- 打开后看右下角状态栏,应显示
C# (.NET)或OmniSharp: Running;若卡在 “Installing…”,打开 Output 面板,切换到OmniSharp Log查具体错误
调试前先确保 dotnet run 能通
F5 调试失败,90% 是因为项目根本没编译成功。launch.json 里的 program 指向的是 bin/Debug/net8.0/MyApp.dll 这类编译产物,不是源码。跳过编译直接调,肯定报 Cannot launch program。
- 终端进项目根目录(即含
.csproj的那层),手动执行dotnet run;成功了再点 F5 - 若报
error NETSDK1045: The current .NET SDK does not support targeting .NET 8.0,说明.csproj里写的<targetframework>net8.0</targetframework>和你本地dotnet --list-sdks输出不匹配 - launch.json 中
program值推荐写成:"${workspaceFolder}/bin/Debug/net8.0/${fileBasenameNoExtension}.dll"(注意net8.0要和项目<targetframework></targetframework>一致)
C# Dev Kit 是当前调试必需项
旧版 C# 扩展(仅 OmniSharp)已无法自动配置调试器、生成 launch.json、支持 .NET 8+ 热重载。C# Dev Kit 不是“锦上添花”,而是现在 VSCode 调试 C# 的事实标准。
- 安装后必须重启 VSCode(不是重载窗口,是彻底关闭再打开),否则 OmniSharp 后端不加载、
.csproj不解析、状态栏图标不出现 - macOS/Homebrew 用户常遇到 Dev Kit 找不到 SDK:重启后按
Cmd+Shift+P输入C#: Select .NET SDK,手动指定路径(如/opt/homebrew/share/dotnet) - Windows 上通过 WinGet 安装的 SDK,路径通常是
C:\Program Files\dotnet,同样需确认是否被识别
最容易被忽略的其实是环境变量继承问题:VSCode 内置终端可能缓存旧 PATH,dotnet --list-sdks 在系统终端能跑,但在 VSCode 终端里为空——这时别改配置,关掉 VSCode 全局重开,或新建一个 Terminal tab。











