必须安装.net sdk而非runtime;调试失败主因是launch.json中program路径错误或未打开含.csproj的文件夹,需用dotnet --list-sdks验证sdk安装,确保program指向编译后的.dll且框架版本与.csproj一致。

必须装 .NET SDK,不是 Runtime;调试失败八成是 launch.json 里 program 路径写错了,或者工作区没打开含 .csproj 的文件夹。
dotnet --version 没输出?先查 SDK 是否真装对了
Windows 用户常误点 “ASP.NET Core Runtime” 安装包,它只能运行程序,不能编译 .cs 文件;macOS 用户漏掉 xcode-select --install,会导致 dotnet build 报 MSB4236: The SDK 'Microsoft.NET.Sdk' could not be found;Linux 用户则容易缺 libicu 或 libssl,现象是 Failed to initialize CoreCLR。
验证方式只有一条命令:
dotnet --list-sdks
输出应类似:
8.0.100 [/usr/share/dotnet/sdk]
若无任何输出:
- 重装
.NET SDK(去dotnet.microsoft.com/download下载带 “SDK” 字样的安装包) - 关掉所有终端和 VSCode,再新开终端重试 —— VSCode 不会自动继承新环境变量
- macOS 用户补执行
xcode-select --install;Ubuntu/Debian 用户补装libicu72和libssl3
C# 扩展不生效?检查工作区根目录有没有项目文件
VSCode 的 C# 扩展(背后是 OmniSharp)只在含 .csproj、.sln 或 global.json 的目录下启动。打开单个 Program.cs 文件,状态栏会显示 “C# features are disabled”,F5 调试必然失败。
正确做法是:
- 用命令行创建项目:
dotnet new console -n MyApp - 在 VSCode 中选择 File > Open Folder,打开
MyApp这个文件夹(不是MyApp.cs文件) - 如果已错开成文件,直接关窗口,重新以文件夹方式打开
OmniSharp 启动后,状态栏右下角应显示 OmniSharp Server: Running;若卡在 “Installing…”,打开 Output 面板,切换到 OmniSharp Log 查具体报错。
launch.json 的 program 字段为什么总报错?
program 必须指向编译后的 .dll 文件,不是 .cs 源码,也不是项目名。默认模板生成的路径是:
"program": "${workspaceFolder}/bin/Debug/net8.0/MyApp.dll"
但很多人手动改成 MyApp.cs 或 MyApp,就会触发错误:
Cannot launch program; setting 'program' must be an absolute path to the executable
注意三点:
-
net8.0要和项目文件中<targetframework></targetframework>一致(比如你改成了net6.0,这里就得同步改) - 首次构建前,
bin/Debug/...目录不存在,F5 会失败 —— 先 Ctrl+Shift+B 构建一次,或手动跑dotnet build - 如果用了
global.json锁定 SDK 版本,确保它和launch.json中的框架名兼容(比如sdk.version: "8.0.100"对应net8.0)
OmniSharp 启动慢或提示找不到 .NET?手动指定 dotnetPath
某些系统(尤其是 macOS 或多 SDK 共存环境)下,OmniSharp 无法自动定位 dotnet CLI 路径,导致智能提示失效、跳转失败。这时需在 VSCode 设置中加一条:
"omnisharp.dotnetPath": "/usr/local/share/dotnet/dotnet"
路径可通过终端查出:
which dotnet
常见位置有:
- macOS Homebrew 安装:
/opt/homebrew/bin/dotnet或/usr/local/share/dotnet/dotnet - Windows:
C:\Program Files\dotnet\dotnet.exe - Linux:
/usr/share/dotnet/dotnet
这个配置必须写进用户或工作区的 settings.json,改完重启 VSCode 生效。别指望靠重启 OmniSharp 命令解决路径问题 —— 路径不对,它连服务都起不来。











