Как запустить и отладить консольное приложение из игрового проекта XNA - PullRequest
3 голосов
/ 19 ноября 2011

У меня есть 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, но это не помогло.

Как я могу отлаживать консольное приложение, когда его так называют? Моя игра XNA работает в оконном режиме.

1 Ответ

0 голосов
/ 19 ноября 2011

вы можете запустить дочерний процесс в приостановленном состоянии и вручную подключить отладчик ...

к сожалению .net, похоже, не может сделать это напрямую ... однако вы можете использовать pinvoke для вызова winapi CreateProcess () с флагом CREATE_SUSPENDED ...

некрасиво, но должно работать ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...