You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何调试C#解决方案中通过Process类调用的.exe文件

解决同一C#解决方案中Process调用项目无法调试的问题
  • 手动附加调试器到目标进程
    运行调用程序后,在Visual Studio里点击「调试」→「附加到进程」,找到你通过Process启动的目标exe进程,选中后完成附加,就能正常断点调试。如果进程启动后很快执行完毕,可在被调用项目的入口处添加一段等待代码,给你留足附加时间:

    #if DEBUG
        Console.WriteLine("等待调试器附加...");
        while (!System.Diagnostics.Debugger.IsAttached)
        {
            System.Threading.Thread.Sleep(1000);
        }
        Console.WriteLine("调试器已附加");
    #endif
    
  • 配置多项目启动替代Process调用
    右键解决方案→「属性」→「启动项目」,选择「多启动项目」,将调用项目和被调用项目的启动动作都设为「启动」,还能调整启动顺序。这种方式无需通过Process手动启动,Visual Studio会同时管理两个进程的调试,天然支持断点命中。

  • 检查Process启动的版本与路径配置
    确保Process启动的是Debug版本的exe,路径指向目标项目的bin/Debug目录而非Release。同时设置正确的工作目录,避免调试符号加载失败:

    var startInfo = new ProcessStartInfo
    {
        FileName = @"..\..\..\TargetProject\bin\Debug\TargetProject.exe",
        UseShellExecute = false,
        WorkingDirectory = @"..\..\..\TargetProject\bin\Debug"
    };
    Process.Start(startInfo);
    
  • 验证调试符号的生成与加载

    1. 检查被调用项目属性→「生成」→「高级」,确认「调试信息」设置为「完整」或「pdb-only」(Debug模式默认是完整)。
    2. 在Visual Studio的「调试」→「选项」→「符号」中,确保本地符号路径包含目标项目的bin/Debug目录,按需勾选「Microsoft符号服务器」加载系统库符号。
    3. 若断点显示为空圈,可通过「调试」→「窗口」→「模块」找到目标exe,右键选择「加载符号」手动指定pdb文件路径。
  • 启用Just-In-Time调试
    打开Visual Studio→「工具」→「选项」→「调试」→「Just-In-Time」,勾选「Managed」代码的Just-In-Time调试。这样当被调用进程抛出未处理异常时,会自动触发Visual Studio调试器附加,方便排查问题。

内容的提问来源于stack exchange,提问作者Ugus

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 11:15:11