Как делают Вы "Присоединяете для Обработки..." для консольного приложения, которое это запускает из окна CMD и не запущенное F5? Причина, которую я спрашиваю, состоит в том, потому что приложение берет параметры командной строки, и я хочу иметь подлинный опыт.
У меня есть даже присоединение к CMD.exe
, но никакая удача или установка использования точки останова Console.ReadKey()
с также никакой удачей. Я отчасти в недоумении здесь.
Действительно ли это возможно?
У вас есть несколько вариантов:
Как говорили другие, вы можете указать аргументы командной строки stratup из проекта и просто начать отладку в Visual Studio.
Если вы все еще хотите подключиться к работающему приложению, вам нужно прикрепить отладчик к MyApp.exe (как бы ни называлось ваше приложение - exe, который компилируется в каталог bin \ debug), а не cmd.exe. Присоединяясь к cmd.exe, он присоединяется к командному процессу, а не к процессу вашего приложения.
В разделе «Отладка» настроек проекта есть текстовое поле для «Аргументы командной строки:». Когда отладчик VS запускает программу C #, он передает эти аргументы процессу так же, как если бы программа была запущена из командной строки с этими аргументами.
Альтернативой является использование отладчика командной строки.Здесь есть несколько вариантов, но, честно говоря, они, вероятно, не то, что вы хотите использовать вместо VS, если только вы не попадаете в какие-то действительно сложные сценарии отладки. Если вы хотите их проверить, в этом SO-ответе есть хорошее резюме:
Вы также можете попробовать метод обращения к System.Diagnostics. .Debugger.Break ()
в начале вашей инициализации - если программа работает под отладчиком, она сломается, если она не работает под отладчиком, вас спросят, хотите ли вы присоединить его. Вы можете сделать вызов условно в зависимости от файла конфигурации или параметра переменной среды, поэтому вы получите перерыв только в том случае, если он вам действительно интересен (несколько навязчиво, но не так уж плохо).
Это возможно, конечно. Попробуйте одно из этих двух:
Чтобы отлаживать из командной строки, а не использовать дебри графического интерфейса VS:
Запустите командную строку Visual Studio
введите vsjitdebugger/?, что даст вам пример команды типа :
c:> vsjitdebugger [AppName] [Args] : Запуск указанного исполняемого файла и присоединение к отладчику
c:> tasklist | find /i "web"