<p>Sublime Text 运行 C# 必须依赖已安装且全局可用的 dotnet CLI;单个 .cs 文件无法直接用 dotnet run 执行,需先创建含 .csproj 的项目或改用 dotnet script。</p>

Sublime Text 不能直接运行 C#,必须依赖系统已安装的 dotnet CLI;单个 .cs 文件无法用 dotnet run 执行,必须先有 .csproj 项目,或改用 dotnet script。
确认 dotnet 命令全局可用是唯一硬前提
所有构建配置都建立在 dotnet 能从任意终端调用的基础上。如果 dotnet --version 报错或无输出,后续全部失效。
- Windows 用户安装 .NET SDK 时务必勾选 “Add to PATH”,装完重启 Sublime Text(否则它读不到新环境变量)
- macOS/Linux 用户若用
brew install dotnet-sdk,需检查~/.zshrc或~/.bash_profile是否已source,再运行dotnet --version验证 - 验证不止看版本号:执行
dotnet new console -o test && cd test && dotnet run,能输出Hello, World!才算真正就绪
dotnet run 只认项目,不认单文件
你在 Sublime 里打开一个裸 hello.cs,按 Ctrl+B 调用 dotnet run,一定会报错:Couldn't find a project to run 或 MSB1009: Project file does not exist。
- 现代 .NET(5+)已弃用
csc直接编译单文件的方式,dotnet run必须在含.csproj的目录下执行 - 正确做法:先在目标目录运行
dotnet new console生成项目结构,确保该目录下有MyProject.csproj和Program.cs - Sublime 的
working_dir必须指向这个项目根目录,不能写成${file_path}(它只到文件所在文件夹,不一定含.csproj),推荐用${project_path:${folder}}
构建系统怎么写才不踩坑
新建 Tools → Build System → New Build System…,粘贴以下内容并保存为 CSharp.sublime-build:
{
"cmd": ["dotnet", "run"],
"selector": "source.cs",
"working_dir": "${project_path:${folder}}",
"variants": [
{
"name": "Build",
"cmd": ["dotnet", "build"]
},
{
"name": "Clean",
"cmd": ["dotnet", "clean"]
}
]
}
-
"selector": "source.cs"让 Sublime 在打开.cs文件时自动激活该构建系统 -
"working_dir"是关键:用${project_path:${folder}}而非${file_path},避免在子目录中打开Program.cs却让dotnet run在错误路径执行 - 不要加
"shell_cmd"字段——Sublime Text 4+ 推荐用"cmd"数组形式,更安全、跨平台兼容性好 - 错误信息正则可选配:
"file_regex": "^(.*?):\((\d+),(\d+)\):\s+(.*)$",启用后点击错误行可跳转
想快速试代码片段?别硬套项目,换 dotnet script
如果你只是临时写几行逻辑验证想法,建项目太重。这时应放弃 dotnet run,改用 dotnet script:
- 先运行
dotnet tool install -g dotnet-script安装工具 - 新建一个
test.csx(不是.cs),写顶层语句,如Console.WriteLine("OK"); - 构建系统改为:
"cmd": ["dotnet", "script", "$file"],"selector": "source.csx" - 注意:
.csx不支持class声明和完整项目结构,它是脚本模式,语法略有差异
最容易被忽略的是 working_dir 和项目结构的绑定关系——Sublime 不会自动识别你“想跑哪个项目”,它只机械执行命令;你给错路径,dotnet 就找不到 .csproj,报错信息又藏在构建面板里,容易误判为配置问题而非路径问题。


















