如何通过C# Process.Start重载打开.cs文件并定位到指定行?
解决方案:程序化打开.cs文件并定位到指定代码行
完全可以通过System.Diagnostics.Process.Start(string fileName, string arguments)重载方法实现这个需求,核心是根据你使用的编辑器/IDE,传递对应的命令行参数来直接定位行号,无需手动操作。以下是主流工具的实现方式:
Visual Studio(2019/2022等版本)
使用VS的devenv.exe,通过/edit和/command "edit.goto {line}"参数实现:
string csFilePath = @"C:\Projects\YourApp\Program.cs"; int targetLine = 15; // 注意:根据你的VS版本和安装路径调整devenv.exe的路径 Process.Start( @"C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\devenv.exe", $"/edit \"{csFilePath}\" /command \"edit.goto {targetLine}\"" );
Visual Studio Code
VS Code支持--goto参数,格式为文件路径:行号:
string csFilePath = @"C:\Projects\YourApp\Program.cs"; int targetLine = 15; // 若code.exe不在系统PATH中,需指定完整路径(如C:\Users\你的用户名\AppData\Local\Programs\Microsoft VS Code\Code.exe) Process.Start("code.exe", $"--goto \"{csFilePath}:{targetLine}\"");
Notepad++
Notepad++使用-n{行号}参数来定位:
string csFilePath = @"C:\Projects\YourApp\Program.cs"; int targetLine = 15; Process.Start( @"C:\Program Files\Notepad++\notepad++.exe", $"\"{csFilePath}\" -n{targetLine}" );
关键说明
- 不同编辑器的命令行参数格式不同,需根据实际使用的工具调整参数
- 路径中包含空格时,一定要用双引号包裹,避免参数解析错误
内容的提问来源于stack exchange,提问作者Mitch Giesbrecht
相关产品推荐
相关产品推荐

