Ответ 1
В свойствах проекта в разделе "Отладка" вы можете ввести любые аргументы командной строки, которые хотите, а затем запустить приложение с помощью F5, отладчик будет автоматически подключен.
Я пытаюсь создать инструмент командной строки в С# с VS2010.
Мой вопрос: как мне отлаживать это, например, я бы выиграл. С winforms я могу выполнить код, увидеть значения на каждом отдельном шаге и т.д.
Здесь, однако, программа реагирует только тогда, когда я говорю с ней из командной строки. Я не могу начать сеанс отладки, так как это сначала полностью запустит программу. И из-за характера программы он будет закрыт, потому что не было аргументов командной строки.
Таким образом, отладка не может быть выполнена.
Что мне нужно сделать здесь?
EDIT: пример, так как кто-то сделал комментарий, который заставляет меня почувствовать, что это объяснение необходимо.
C:\Path\To\File\file.exe -help
Это пример того, как эта программа адресуется. Команда -help задается в той же строке, что и программа. Другими словами, я не могу сначала запустить программу, а затем дать ей команду во время ее запуска... потому что она больше не будет работать. Это начнется, посмотрите, что у него не было аргументов при запуске, и из-за этого выключение. Это как инструмент командной строки.
Это не то, что продолжает работать, пока вы не нажмете маленький x в верхнем правом углу.
В свойствах проекта в разделе "Отладка" вы можете ввести любые аргументы командной строки, которые хотите, а затем запустить приложение с помощью F5, отладчик будет автоматически подключен.
Вы можете добавить вызов к Debugger.Launch к вашему стартовому коду. Затем вы можете скомпилировать и запустить свое приложение из командной строки. Вы получите подсказку о том, какой отладчик вы хотите присоединить (как правило, это будет список различных версий Visual Studio, которые вы установили), и прочь вы идете.
(Но на самом деле, установка параметров командной строки в свойствах проектa > вкладка "Отладка" - это лучший способ проделать большую часть времени. Если это не работает для вас, вы должны выяснить, почему.)
Вы можете использовать Visual Studio для присоединения отладчика к приложению командной строки, когда он выполняется с правильными аргументами. Я не уверен, что ваше приложение быстро завершится или предоставит вам возможность подключить отладчик, но если это произойдет, это должно сработать.
Я использую VS2008, но я готов поспорить, что процесс похож в 2010 году:
Tools
и нажмите Attach to Process
Attach
Теперь VS должен быть в состоянии окунуться в ваше приложение и сломать ошибку.
Вам просто нужно добавить точку останова в первую строку основной функции (вы можете сделать это, щелкнув по строке в редакторе Visual Studio и нажав F9) и нажмите F5, чтобы начать сеанс отладки.
Либо добавьте точку останова к открытию {
из Main
, либо выполните шаги в программе (меню отладки). В этот момент установите параметр для параметра main (аргументы командной строки), выбрав его и щелкните правой кнопкой мыши/Добавить Watch или перетащите параметр в окно просмотра, если оно уже открыто. Дважды щелкните столбец "Значение" в окне "Смотреть" и установите его так, как вы хотите.
Примечание: добавленная стоимость должна быть допустимым кодом, то есть для добавления -help к строке [] вам нужно будет ввести new string[] {"-help"}
или new [] {"-help"}
в зависимости от версии вы используете.
Это имеет преимущество перед настройкой параметра на вкладке "Отладка" окна "Свойства", позволяя различным параметрам для каждого запуска без необходимости возврата в окно "Свойства".
Если у вас есть аргументы командной строки, вам нужно выполнить другой маршрут для отладки. Перейдите в проект и затем выберите свойства. Там вы увидите раздел отладки и затем укажите требуемые параметры. Так что он позаботится о передаче параметров программе. Если у вас есть несколько параметров, отделите их пробелом. После этого, если вы отлаживаете, он сразу попадет в точку останова. Подробнее см. как отлаживать С# через аргументы командной строки в visual studio