如何在 Linux 中使用 VSCode 调试单个 C# 文件?

· 代码经验

🚀 博主整理的云服务器优惠活动(点击查看)

如何在 Linux 中使用 VSCode 调试单个 C# 文件?在 Linux 系统里,我们可以用 Visual Studio Code(通常叫 VSCode)来调试 C# 写的程序,这个做法是完全可行的。这篇文章会通过具体的设置步骤和代码例子,告诉你怎么搭一个最简单的环境,专门用来调试一个 C# 文件。

说明:虽然 .NET 一般要求你用“项目”的方式组织代码,但我们其实可以用一个很小的控制台程序来代替,这样就能像只写一个文件那样快速测试或者上课演示。

一、先准备好运行环境

第一步是要装好 .NET SDK。如果你用的是像 Ubuntu 这样的系统,可以运行下面这几行命令来下载并安装:

wget https://dot.net/v1/dotnet-install.sh -O dotnet-install.sh
chmod +x dotnet-install.sh
./dotnet-install.sh --channel LTS

装完之后,要把 .NET 的路径加到系统的环境变量里,建议把它写进你的 ~/.bashrc 文件,这样每次打开终端都能用:

export DOTNET_ROOT=$HOME/.dotnet
export PATH=$PATH:$HOME/.dotnet

装好了就可以用这个命令看看版本对不对:

dotnet --version

二、建一个最小的项目结构

虽然我们只想改一个 .cs 文件,但 .NET 还是需要一个基本的项目框架才能工作。不过别担心,这很简单——只要在终端里输入下面的命令,它就会自动帮你建好:

mkdir MySingleFileApp
cd MySingleFileApp
dotnet new console

执行完后,你会看到文件夹里有两个文件:

MySingleFileApp/
├── Program.cs
└── MySingleFileApp.csproj

其中 Program.cs 刚开始只有这一行:

Console.WriteLine("Hello, World!");

你可以随便改这个文件。比如,加上几个变量,再在计算结果那行打算设个断点,就像这样:

int x = 10;
int y = 20;
int sum = x + y; // 可以在这里暂停程序看数值
Console.WriteLine($"Sum: {sum}");

三、把 VSCode 设置好

在终端里用 code . 命令打开当前文件夹;然后去扩展商店装两个插件:一个是 Microsoft 官方出的 C# 插件,另一个是 C# Dev Kit(这个不是必须的,但装了会更方便)。

注意:第一次打开 .cs 文件的时候,VSCode 通常会弹出提示,问你要不要自动生成调试需要的配置文件,这时候点“是”就行。

四、让 VSCode 自己生成调试配置

直接按键盘上的 F5 键,VSCode 会问你用哪种方式调试,选 “.NET 5+ (Integrated Terminal)” 就可以了。

选完之后,它会在 .vscode 文件夹里自动创建两个配置文件:launch.jsontasks.json

自动生成的 launch.json 长这样:

{
  "version": "0.2.0",
  "configurations": [
    {
      "name": ".NET Core Launch (console)",
      "type": "coreclr",
      "request": "launch",
      "preLaunchTask": "build",
      "program": "${workspaceFolder}/bin/Debug/net8.0/MySingleFileApp.dll",
      "args": [],
      "cwd": "${workspaceFolder}",
      "console": "integratedTerminal",
      "stopAtEntry": false
    }
  ]
}

对应的 tasks.json 是这样的:

{
  "version": "2.0.0",
  "tasks": [
    {
      "label": "build",
      "command": "dotnet",
      "type": "process",
      "args": [
        "build",
        "${workspaceFolder}/MySingleFileApp.csproj",
        "/property:GenerateFullPaths=true",
        "/consoleloggerparameters:NoSummary"
      ],
      "problemMatcher": "$msCompile"
    }
  ]
}
好处是:这些内容都是工具自己填好的,里面的路径(比如 net8.0)会根据你电脑上装的 .NET 版本自动调整,你不用手动改任何地方。

五、开始调试程序

Program.cs 里,点一下某一行左边的空白处,就会出现一个红点,这就是断点。设好之后,再按一次 F5,程序就会跑起来,并在断点那里停下来。这时候你可以看到各个变量现在的值,也能看到函数是怎么一层层调用过来的。

六、补充一点:关于“真正只用一个文件”的情况

从 .NET 6 开始,C# 支持一种叫“顶级语句”的写法,意思是你不用再写 classMain 方法,代码可以直接从第一行开始写,比如:

var name = "Alice";
var greeting = $"Hello, {name}!";
Console.WriteLine(greeting); // 这里也可以设断点

虽然这样看起来真的只有一个文件,但实际上 .csproj 还是得留着,因为编译的时候要用它。不过对我们写代码的人来说,只需要管 Program.cs 这一个文件就够了,体验上就是“单文件开发”。

最后总结一下

讲的方法能让你在 Linux 上轻松调试 C# 代码,整个过程可以分成下面几步:

步骤要做的事情
1装好 .NET SDK 并确认版本
2用命令创建一个最简单的控制台项目
3打开 VSCode,装上 C# 相关插件
4按 F5 让它自动生成调试配置
5在代码里点一下设断点,再按 F5 开始调试
总的来说:虽然背后还是有个项目文件(.csproj),但你平时只需要改一个 .cs 文件,既省事又清楚。

这种方法特别适合用来教学、写小工具或者快速验证一段代码,在 Linux 上也能获得和 Windows 下差不多的调试体验。