必须安装 .NET SDK 而非仅 Visual Studio 或 Runtime;认准 Microsoft 官方 C# 扩展(ms-dotnettools.csharp);用 dotnet new 创建标准项目结构;确保 launch.json 中 program 路径与 .csproj 的 TargetFramework 一致。
装 .NET SDK 而不是只装 Visual Studio
VS Code 本身不带 C# 运行时或编译器,
dotnet
命令必须可用。很多人装了 Visual Studio 就以为万事大吉,结果
dotnet --version
报错或根本找不到命令——因为 VS 安装时默认不勾选“.NET SDK”组件,或者装的是“Runtime”而非“SDK”。
去
dotnet.microsoft.com/download
下载最新 LTS 版本的
.NET SDK
(不是 Runtime),直接安装
安装完后在终端运行
dotnet --version
,确认有输出(如
8.0.100
)
Windows 用户注意:如果用的是 PowerShell 或 Windows Terminal,可能需要重启终端才能读取新 PATH;macOS/Linux 用户装完通常要执行
source ~/.zshrc
或对应 shell 配置文件
装 C# 扩展时认准 OmniSharp 官方版
VS Code 商店搜 “C#”,会出现多个同名扩展。真正起作用的是
ms-dotnettools.csharp
(作者是 Microsoft),它背后依赖 OmniSharp 语言服务器。其他名字类似但作者不是
ms-dotnettools
的,大概率是旧版、阉割版或第三方魔改版,会导致调试失败、智能提示卡死、
launch.json
不识别等问题。
在 VS Code 扩展市场搜索 “C#”,点进作者为
Microsoft
、ID 是
ms-dotnettools.csharp
的那个
安装后重启 VS Code,打开一个
.cs
文件,看右下角状态栏是否出现
OmniSharp: Ready
如果一直显示
Starting...
或报错
Failed to start OmniSharp
,大概率是
dotnet
没装对,或项目根目录下没有
.csproj
文件
新建项目别手写
.csproj
,用
dotnet new
手动建文件夹、写
.csproj
、再配
tasks.json
和
launch.json
,不仅容易写错,而且 VS Code 的 C# 扩展其实依赖标准项目结构才能自动激活调试和引用解析。直接用 CLI 创建最稳。
VSCode 1.118
微软正式发布 Visual Studio Code 1.118 版本 。本次更新重点强化了 AI 开发体验与企业管理能力,其中最引人注目的是新增 Copilot CLI 远程控制功能,允许开发者通过手机或网页远程监控和接管 AI 会话 。同时,为了提高 AI 的运行性价比,新版本优化了令牌缓存策略以降低成本 。此外,1.118 版还引入了 Chronicle 本地历史追踪、TypeScript 7.0 支持以及更严格的企业级访问管控 。
下载
在空文件夹里运行
dotnet new console -o MyApp
(生成控制台项目)
用 VS Code 打开
MyApp
文件夹(不是单个
.cs
文件)
首次打开会提示 “Required assets to build and debug are missing…”,点 “Yes” 自动生成
.vscode/tasks.json
和
.vscode/launch.json
如果没弹窗,可以按
Ctrl+Shift+P
(Win/Linux)或
Cmd+Shift+P
(macOS),输入
OmniSharp: Restart OmniSharp
强制重载
调试前先确认
launch.json
的
program
路径是否正确
自动生成的
launch.json
里
program
字段默认是
"${workspaceFolder}/bin/Debug/net8.0/MyApp.dll"
。但如果项目 SDK 版本变了(比如从
net6.0
升到
net8.0
),或你手动改过
TargetFramework
,这个路径就失效,F5 启动时会报错:
Could not find file '/path/to/bin/Debug/net6.0/MyApp.dll'
。
打开
.csproj
,看
值(如
net8.0
)
检查
bin/Debug/
下实际生成的文件夹名是否一致(大小写敏感,不能写成
NET8.0
)
修改
.vscode/launch.json
中
program
对应路径,确保和真实输出路径完全匹配
也可以把
program
改成
"${workspaceFolder}/bin/Debug/**/MyApp.dll"
让 VS Code 自动查找,但仅限开发阶段,CI/CD 不建议这么用
C# 在 VS Code 里跑得稳不稳,关键不在编辑器配置多精细,而在于
dotnet
是否真可用、项目结构是否标准、以及 OmniSharp 能不能顺利加载到正确的
.csproj
。这三个环节任一出岔子,后面所有智能提示和调试都会飘在半空。