必须装 .net sdk(非 runtime);配置 c#、.net install tool 和 xml 注释三个插件;用 dotnet new 创建控制台项目后,f5 即可调试,无需手动改配置文件。

必须装 .NET SDK,不能只装 Runtime;VS Code 本身不带编译能力,装错就根本跑不起来。
dotnet --version 报“不是内部或外部命令”
这是环境变量没生效的典型表现,不是安装失败。常见原因有三个:
- 安装时没勾选“将 .NET SDK 添加到 PATH”(Windows 安装器里默认勾选,但有人会手动取消)
- 安装后没重启终端——PowerShell 或 CMD 窗口必须关掉重开,PATH 才刷新
- 装的是
.NET Runtime而非.NET SDK:Runtime 只能运行已编译的程序,dotnet new、dotnet build这些命令全靠 SDK 提供
验证方式很简单:打开全新 PowerShell,执行 where.exe dotnet。如果返回空,说明系统根本找不到 dotnet.exe;正常路径通常是 C:\Program Files\dotnet\dotnet.exe 或用户目录下的 %USERPROFILE%\AppData\Local\Microsoft\WindowsApps\dotnet.exe(后者是 Windows App Store 版本,不推荐)。
VS Code 打开 C# 文件后没智能提示、右下角不显示 “C# (.NET)”
这不是插件没装,而是 OmniSharp 语言服务器没启动成功。常见卡点:
- 装了插件但没装
.NET SDK:插件会检测本地 SDK,发现没有就静默放弃,不会报错 - 装了多个 SDK(比如 6.0、8.0、10.0),但项目
global.json指定了不存在的版本,OmniSharp 启动失败 - 第一次打开
.cs文件时,VS Code 底部状态栏显示 “OmniSharp: Starting…” 卡住超过 2 分钟,大概率是网络问题——它在后台下载对应 SDK 版本的语言服务器(omnisharp-win-x64.zip等),国内用户常被卡住
临时解法:关掉 VS Code,手动删掉 %USERPROFILE%\.omnisharp\ 目录,再重开;或者用命令行提前下载好对应 zip 包扔进该目录(官方 release 页面可查匹配版本)。
dotnet new console -n MyApp 创建后,F5 调试报 “Could not find debug adapter for type 'coreclr'”
这说明调试器没识别到项目类型,本质是项目没被正确加载。最常踩的坑是:
- 没在项目根目录(即含
.csproj的那层)打开文件夹:VS Code 必须打开整个项目文件夹,不能只打开单个Program.cs -
.csproj文件里 TargetFramework 写错了,比如写成net8.0但本地只有net10.0SDK——dotnet --list-sdks输出必须包含项目要求的版本 - 用了旧版
C#插件(非C# Dev Kit):老插件依赖 OmniSharp,而新项目(尤其 .NET 8+)默认启用razor或msbuild评估模式,老插件不兼容
快速验证:在项目根目录终端执行 dotnet build。如果成功生成 bin/Debug/net10.0/MyApp.dll,说明项目结构和 SDK 匹配没问题;失败则先解决构建问题,再谈调试。
用 VS Code 命令面板创建项目比手动敲命令更稳
很多人习惯终端里敲 dotnet new console -n MyApp,但其实 VS Code 内置命令更可靠:
- 按
Ctrl+Shift+P→ 输入.NET: Create Project→ 回车 → 选 “Console Application” → 选位置 → 命名 - 这个流程会自动检查当前可用 SDK 版本,并优先使用你
dotnet --list-sdks里最新的那个,避免手动指定版本出错 - 创建完直接在资源管理器里点开
Program.cs,右上角会出现 “Run and Debug” 按钮,点一下就能跑,不用记dotnet run
真正容易被忽略的点是:VS Code 的 .NET: Create Project 命令背后调用的仍是 dotnet new,但它会读取你系统里所有已安装 SDK,并做一次隐式版本对齐——而手动敲命令时,你得自己确保 dotnet new 默认用哪个 SDK,这点连 dotnet --info 都不直接告诉你。











