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

时间:2011-11-19 00:18:47

标签: c# debugging 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 :(得分:0)

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

遗憾的是.net似乎无法直接执行此操作...但是您可以使用pinvoke使用CREATE_SUSPENDED标志调用winapi CreateProcess()...

难看,但它应该有用......