如何从XNA游戏项目启动和调试控制台应用程序

3

我有三个项目在我的解决方案中。其中两个是控制台应用程序,还有一个是XNA游戏项目(和一个用于XNA的内容项目)。当我使用以下代码从一个控制台应用程序调用另一个控制台应用程序:

    ProcessStartInfo startInfo = new ProcessStartInfo
    {
        FileName = @"..\..\..\..\..\ChildProcess\bin\Debug\ChildProcess.exe",
        UseShellExecute = false,
        CreateNoWindow = false,
        RedirectStandardOutput = true,
        RedirectStandardInput = true
    };

    Process process = Process.Start(startInfo);
    process.WaitForExit();

我可以在ChildProcess应用程序中设置断点并进行调试。但是,如果我将此代码复制到XNA游戏项目(在其Main方法的开头)中,并将其设置为起始项目,则会启动ChildProcess应用程序,但是永远不会触发ChildProcess应用程序中的断点。我尝试更改ProcessStartInfo init属性,但没有帮助。
当以这种方式调用时,如何调试控制台应用程序?我的XNA游戏在窗口模式下运行。
1个回答

0

你可以在挂起状态下启动子进程,并手动附加调试器...

不幸的是,.net似乎无法直接实现这一点...但是你可以使用PInvoke调用winapi CreateProcess()并设置CREATE_SUSPENDED标志...

虽然有些丑陋,但应该能够工作...


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接