必须先验证dotnet cli可用,否则sublime所有c#配置均无效;需在终端执行dotnet --version和dotnet run输出hello, world!,再设working_dir为"${project_path:${folder}}"且目录含.csproj。

dotnet CLI 必须先验证可用,否则所有配置都白搭
Sublime Text 本身不带 C# 编译器,所有运行动作本质是调用系统里的 dotnet 命令。没这一步,后续全是空转。
必须在终端(CMD / PowerShell / Terminal)里执行两步验证:
-
dotnet --version返回类似8.0.400的版本号 -
dotnet new console -o test && cd test && dotnet run输出Hello, World!
常见失败原因:
- Windows 安装 .NET SDK 时没勾选「将 dotnet 添加到 PATH」
- macOS 用
brew install dotnet-sdk后,~/.zshrc缺少source $(brew --prefix)/etc/profile.d/dotnet.sh或没执行source ~/.zshrc - Linux 用
snap install dotnet-sdk,因权限隔离导致 Sublime 调用失败;应改用 APT/YUM 官方源安装
验证成功后,必须重启 Sublime Text——它不会自动读取新环境变量。
构建系统 working_dir 必须指向含 .csproj 的目录
Sublime 不解析代码、不识别入口类,dotnet run 只在有 .csproj 的目录下才有效。设成 ${file_path}(即 .cs 文件所在目录)是最常见错误。
比如文件路径是 src/Program.cs,${file_path} 就是 src/,而 .csproj 通常在上层,结果报错:No executable found matching command "dotnet-run" 或 MSB1009: Project file does not exist。
唯一正确的写法是:
"working_dir": "${project_path:${folder}}"——优先取 Sublime 项目路径,没开项目就退到当前文件夹,但该文件夹下必须有 .csproj。
额外约束:
- 路径必须纯英文、无空格、无中文;某些 shell 下遇到空格会静默失败
- 别试图用
dotnet run直接跑单个.cs文件;没有项目结构,dotnet根本不知道引用什么、从哪开始
CSharp.sublime-build 文件必须包含四个关键字段
保存为 Packages/User/CSharp.sublime-build,内容必须包含以下四点,缺一不可:
-
"cmd": ["dotnet", "run"]—— 主运行命令 -
"selector": "source.cs"—— 确保打开任意.cs文件时自动激活该构建系统 -
"working_dir": "${project_path:${folder}}"—— 工作目录逻辑已说明 -
"file_regex": "^([^:]*):([0-9]+):([0-9]+):\s+(error|warning)\s+(.*)$"—— 必须严格匹配Program.cs(12,5): error CS1002: ; expected这类输出,否则错误无法跳转定位
注意:file_regex 中的括号和反斜杠不能少,正则写错会导致构建失败时看不到错误行号。
别漏掉项目根目录这个隐性前提
很多人卡在“点了 Ctrl+B 没反应”或“报错找不到项目”,其实问题不在 Sublime 配置,而在当前打开的文件没处于合法上下文里。
必须满足:你正在编辑的 .cs 文件,其所在目录(或任意上级目录)里存在 .csproj 文件,且你通过 File → Open Folder... 打开了这个目录(即 Sublime 里能看到左侧边栏显示整个项目结构)。
如果只是双击打开单个 .cs 文件,${project_path} 为空,${folder} 又不包含 .csproj,那 working_dir 就失效了——这是最常被忽略的实操细节。











