gpt4 book ai didi

c# - 无法调试使用 Process.Start() 启动的项目

转载 作者:太空狗 更新时间:2023-10-29 17:29:00 26 4
gpt4 key购买 nike

我在同一个解决方案中有两个 C# WinForm 项目,我们称它们为 A 和 B。项目 A 通过如下调用启动进程 B

ProcessStartInfo psi = new ProcessStartInfo();
psi.FileName = Task.EXEFilename;
psi.WorkingDirectory = Path.GetDirectoryName(Data.EXEFilename);
Process.Start(psi);

进程B正确启动。我想在调试 A 的同时调试进程 B。我认为在 B 中放置一个断点就足够了,但它永远不会被击中。我已经验证启动的进程位于 B 的 bin/debug 文件夹中。在这种情况下,我不应该附加到进程来将调试从 A 切换到 B?

最佳答案

在第二个项目中,让它检查其命令行参数,如果它看到像 --debug 这样的东西作为第一个参数传入,第二个程序将启动调试器本身

private static void Main(string[] args)
{
//If no debugger is attached and the argument --debug was passed launch the debugger
if (args.Length == 1 && args[0] == "--debug" && Debugger.IsAttached == false)
Debugger.Launch();

//(snip) the rest of your program

}

执行此操作时,您将看到一个对话框窗口,您可以在其中选择打开 Visual Studio 的新副本或仅使用已经打开的副本。

image


你也可以把子进程放在Image File Execution Options registry key .

关于c# - 无法调试使用 Process.Start() 启动的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18506882/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com