Sublime Text需配置外部构建系统调用dotnet CLI编译运行C#,前提为手动安装.NET SDK并验证dotnet --version;必须先用dotnet new创建项目结构,再配置CSharp.sublime-build文件指定working_dir为含.csproj的目录,支持Build/Clean变体及错误跳转。

Sublime Text 本身不内置 C# 支持,也不能直接编译运行 C# 代码——它只是一个编辑器。要让它“编译运行 C#”,本质是配置外部构建系统(Build System),调用系统已安装的 dotnet CLI 工具(.NET SDK)来完成编译和执行。
确认已安装 .NET SDK 并可用
这是整个流程的前提。Sublime 不会帮你装 .NET,也不会降级兼容旧版。必须手动安装官方 SDK:
- 访问 https://www.php.cn/link/c9f8941c38b7d49a586adf043f2acf21,下载并安装最新 LTS 版本(如 .NET 8.x)
- 安装完成后,在终端(Windows PowerShell / Terminal / CMD)中运行:
dotnet --version
若返回类似8.0.400的版本号,说明安装成功且已加入PATH - 如果报错
'dotnet' is not recognized,请重启终端或检查系统环境变量是否包含dotnet安装路径(如 Windows 下通常是C:\Program Files\dotnet\)
创建项目结构再配置 Build System
Sublime 的构建系统无法像 Visual Studio 那样自动创建项目。你必须先用 dotnet 命令初始化一个合法的 C# 项目,否则 dotnet build 和 dotnet run 会失败。
- 在目标目录下运行:
dotnet new console -n MyProject
生成标准的.csproj+Program.cs结构 - 用 Sublime 打开该目录(不是单个 .cs 文件),或至少确保当前打开的文件位于含
.csproj的目录中 - Sublime 构建系统默认工作目录是当前打开的文件所在目录;若没有
.csproj,dotnet build会提示No project was found
配置 Sublime 的 C# Build System(.sublime-build)
在 Sublime 中:菜单栏 → Tools → Build System → New Build System…,粘贴以下内容并保存为 CSharp.sublime-build(注意扩展名):
{
"cmd": ["dotnet", "run"],
"selector": "source.cs",
"working_dir": "${project_path:${folder}}",
"file_regex": "^(...*?):([0-9]+):([0-9]+):\\s+(error|warning)\\s+(.*)$",
"variants": [
{
"name": "Build",
"cmd": ["dotnet", "build"]
},
{
"name": "Clean",
"cmd": ["dotnet", "clean"]
}
]
}
说明:
-
"cmd": ["dotnet", "run"]是默认快捷键Ctrl+B(Windows/Linux)或Cmd+B(macOS)触发的动作 -
"working_dir"确保命令在项目根目录(含 .csproj)执行,否则构建失败 -
"file_regex"启用错误跳转:点击编译错误行,自动定位到对应.cs文件的出错位置 - 按
Ctrl+Shift+B可选择Build或Clean变体 - 不要用
dotnet run --no-build作为默认 cmd,它跳过编译检查,容易掩盖语法错误
常见问题与绕不开的限制
Sublime 没有语言服务器(LSP)集成时,缺乏智能提示、跳转定义、实时诊断等能力。即使配置了构建系统,也仅解决“跑起来”这一步:
- 修改代码后必须手动保存(
Ctrl+S),dotnet run不会自动监听文件变化 - 调试(debug)功能完全缺失——Sublime 无法启动
dotnet watch或连接 VS Debug Adapter - 若想获得基础补全/错误提示,需额外安装插件:
SublimeLSP+OmniSharp服务(但配置复杂,稳定性不如 VS Code) - 不支持多项目解决方案(
.sln)的统一构建,每个子项目需单独配置 working_dir
真正需要频繁写、调、测 C# 的场景,建议直接用 VS Code(装 C# 插件)或 Visual Studio。Sublime 适合轻量查看、快速改脚本、或已有项目只需偶尔编译验证逻辑——这时候,上面的 Build System 就够用了。










