Sublime Text 需配合已安装的 .NET SDK 和自定义构建系统才能运行 C# 项目;必须创建 .csproj 项目文件,配置 working_dir 指向项目根目录,并确保 dotnet 命令全局可用。

Sublime Text 本身不原生支持 C# 编译与运行,必须依赖外部工具链(如 dotnet CLI)和自定义构建系统。直接装个插件就想跑 C# 是行不通的——你得先确保本地有可用的 .NET SDK,再让 Sublime 知道怎么调用它。
确认已安装 dotnet CLI 并可全局调用
这是整个流程的前提。Sublime 的构建系统本质是执行命令行,如果 dotnet 命令在终端里都报 command not found,那配置再漂亮也没用。
- 在终端运行
dotnet --version,应输出类似8.0.300的版本号 - 若失败,请先从 https://www.php.cn/link/c9f8941c38b7d49a586adf043f2acf21 下载并安装 .NET SDK(选 “SDK”,不是 Runtime)
- Windows 用户注意:安装时勾选 “Add to PATH”,或手动把
C:\Program Files\dotnet\加入系统环境变量 - macOS / Linux 用户安装后可能需重启终端,或运行
source ~/.zshrc(或对应 shell 配置文件)刷新 PATH
创建 .csproj 项目(不能只写单个 .cs 文件)
现代 C#(.NET 5+)不再支持直接编译单个 .cs 文件(csc 已被弃用),必须用项目文件驱动构建。Sublime 不会自动帮你生成项目结构,这一步得手动做。
- 在代码所在目录下运行:
dotnet new console -n MyProject(会建子目录)或dotnet new console(当前目录) - 确保目录里有
MyProject.csproj和Program.cs,且Program.cs里是标准入口(含static void Main或顶层语句) - 不要试图用 Sublime 直接构建一个裸
hello.cs——会报错MSB1009: Project file does not exist - 如只需快速测试片段,可用
dotnet script(需额外安装),但那是另一套机制,和本文的构建系统无关
配置 Sublime 的 C# 构建系统(Build System)
构建系统本质是一个 JSON 文件,告诉 Sublime 在按下 Ctrl+B(Windows/Linux)或 Cmd+B(macOS)时执行什么命令。它不处理语法高亮或补全——那些靠插件(如 OmniSharp)提供,但本题聚焦“编译并运行”。
- 菜单栏选择 Tools → Build System → New Build System…
- 替换全部内容为以下 JSON(适配 Windows/macOS/Linux 通用写法):
{
"cmd": ["dotnet", "run"],
"selector": "source.cs",
"working_dir": "${project_path:${folder}}",
"file_regex": "^(...*?):([0-9]+):([0-9]+):\\s+(error|warning)\\s+(.*)$",
"variants": [
{
"name": "Build Only",
"cmd": ["dotnet", "build"]
}
]
}
-
"working_dir"是关键:确保构建在项目根目录(含 .csproj 的地方)执行,否则dotnet run找不到项目 - 保存为
Csharp.sublime-build,路径默认是Packages/User/ - 之后在 Sublime 中打开任意
.cs文件,右键 → Set Build System → Csharp,再按Ctrl+B即可运行
常见错误与绕不开的坑
这些不是配置遗漏,而是底层机制决定的硬性限制,容易反复踩:
-
Could not execute because the application was not found:多半是working_dir指向了单个 .cs 文件所在目录,而非含 .csproj 的项目根目录 - 修改代码后
dotnet run仍运行旧结果:.NET 默认启用增量编译缓存,可加--no-restore --no-cache参数(改"cmd"为["dotnet", "run", "--no-cache"]) - 中文输出乱码(Windows 控制台):Sublime 内置终端不继承 CMD 的代码页,无法可靠显示 GBK;建议用
dotnet run后自动弹出系统终端,或改用 VS Code - 没有调试能力:Sublime 的构建系统只能运行,不能断点、监视变量;真要调试请换 VS 或 VS Code + OmniSharp
真正卡住人的往往不是配置步骤,而是没意识到 C#(.NET SDK)的项目驱动模型和 Sublime 的轻量定位之间存在天然张力——它能跑起来,但别指望它变成另一个 IDE。











