Запуск без отладки visual studio

Обновлено: 07.07.2024

Сюда буду добавлять горячие клавиши в Visual Studio, способы быстрого ввода и прочие фишки, позволяющие кодить более комфортно.

Начнем с самого простого, что бывает нужно начинающему программисту:
cw + 2 раза Tab = Console.WriteLine();

Далее материалы статьи с Хабра, где-то с моими дополнениями, но в основном в чистом виде:

Комментирование

Ctrl+K,C — закомментировать выбранные линии в коде.
Ctrl+K,U — раскомментировать выбранные линии в коде.

Если перед именем метода набрать /// — автоматически будут добавлены XML комментарии, которые потом можно использовать для создания документации. Туда можно вписать название метода, описание переменных и т.п. Далее при использовании данного метода будут всплывать подсказки как раз с этой информацией.

Поиск

Ctrl+F — открывается стандартное окно поиска, если в буфер недавно было скопирован текст, то он автоматически подставиться.
Ctrl+F3 — поиск «активного» текста вниз (который выделен или слово на котором стоит курсор), без копирования в буфер обмена.
Ctrl+Shift+F3 — поиск «активного» текста вверх.
Ctrl+I — и начинаете печатать текст, этакий runtime поиск.

Вызов базового джина

Вам лень писать текст полностью?! Скорость выпадающего Intellisence не устраивает несущуюся впереди вас вашу мысль?!
Тогда самое время применить следующии комбинации:
Ctrl+Space — вызов Intellisence с показом «слов»
Ctrl+J — если вы подзабыли название метода класса или его свойсто, то эта комбинация вам поможет. Можно применять и предыдущую, но эта более «умная».
Ctrl+K, X — показ всех сниппетов, которые у вас есть, в виде выпадающего списка, использование интуитивно понятно 🙂
короткое_имя_снипета+Tab — использовать сниппет в коде.

Навигация по коду

Если обратите внимание то студия, по своей природе MDI, значит должна быть возможность перемещаться, между окнами:
Ctrl+Tab — аналог Alt+Tab в Windows, только применимо к студии.

Очень удобным инструментом в студии являются закладки, да-да, по аналогии с книжными. Можно отметить код чтобы потом перейти к нему:
Ctrl+B, T — поставить/снять закладку.
Ctrl+B, Ctrl+C — удалить все закладки.
Ctrl+B, N — перейти к следующей закладке.
Ctrl+B, P — перейти к предыдущей закладке.

Форматирование и редактирование

Многие знают и используют Ctrl+C и Ctrl+V, но студия обладает ещё рядом удобным комбинаций:
Ctrl+Shift+V — не отпуская Ctrl+Shift и нажимая на V, вы сможете вставить один из 10 последних кусков текста, скопированных в буфер обмена.
Tab — увеличить отступ.
Shift+Tab — уменьшить отступ.

Мне иногда не хватало вертикального выделения текста, бывает полезно. Оказывается и такая возможность есть! Стоит нажать Alt, и не отпуская, выделять мышкой текст. Но есть минус — меню и стрелочки клавиатуры :). Это решаемо, нажимаете Shift+Alt и используете стрелочки Left или Right

Если код доставшийся вам «грязен», не только по структуре, но и по внешнему оформлению, используйте:
Ctrl+E+D — форматирование всего документа, позволяет привести документ в более удобоваримый вид.
Ctrl+E+F — форматирование выбранной части текста

Иногда в целях рефакторинга или ещё каких-то благих начинаниях, есть смысл перевести все буквы в верхний или нижний регистр:
Ctrl+Shift+U — перевести выделенный блок в верхний регистр
Ctrl+U — перевести выделенный блок в нижний регистр

Небольшой экскурс в сборку и отладку

Конечно же со стороны хоткеев 🙂
Начнём со «сборки»:
Ctrl+Shift+B или F6 — собрать solution.
Shift+F6 — собрать активный проект.
Если честно, тут я немного пошаманил, заточив под себя, иногда бывает удобно пересобрать проект RebuildSolution, но почему-то хоткей для этого не предусмотрен, я поступил следующий образом:
F6 — собрать solution
Ctrl+Shift+B — пересобрать solution
Поступил я так из-за соображения, что иногда студия не выполняет пересборку проекта, а пишет «up-to-date», а мне нужно именно пересобрать.

Если появились ошибки, это плохо, но никто от них не застрахован:
F5 — запустить программу, с возможностью отладки. Или продолжить выполнение программы, после точки останова.
Ctrl+F5 — запустить программу без отладки
F9 — поставить/убрать точку останова — breakpoint
Ctrl+Shift+F9 — удалить все точки останова.
F10 — выполнить код, без захода внутрь
F11 — выполнить код, с заходом внутрь

В режиме отладки есть два типа просмотра — Watch и QuickWatch.
Вызвать QuickWatch вы можете нажав Ctrl+D, Q. Просто Watch — Ctrl+D, W.

Способ запуска программы зависит от того, с чего вы начинаете, от типа программы и от необходимости использовать отладчик. В самом простом случае для сборки и запуска открытого проекта в Visual Studio выполните следующие действия.

  • Нажмите клавишу F5, выберите Отладка > Начать с отладки в меню Visual Studio или выберите зеленую стрелку Запуск и имя проекта на панели инструментов Visual Studio.
  • Для запуска без отладки нажмите клавиши CTRL+F5 или выберите Отладка > Запуск без отладки в меню Visual Studio.

Запуск из проекта

Если код программы уже находится в проекте Visual Studio, откройте проект. Для этого дважды щелкните CSPROJ-файл в проводнике Windows или выберите пункт Открыть проект в Visual Studio, найдите CSPROJ-файл и выберите его.

После загрузки проекта в Visual Studio, если решение Visual Studio содержит несколько проектов, убедитесь, что для проекта задан метод Main , чтоб он считался запускаемым проектом. Чтобы задать запускаемый проект, щелкните имя проекта или узел правой кнопкой мыши в Обозревателе решений, затем выберите пункт Назначить запускаемым проектом в контекстном меню.

Снимок экрана: настройка запускаемого проекта

Снимок экрана: настройка запускаемого проекта

Чтобы запустить программу, нажмите клавиши CTRL+F5, выберите Отладка > Запуск без отладки в верхнем меню или нажмите зеленую кнопку Запуск.

Visual Studio пытается выполнить сборку и запуск проекта. В нижней части экрана Visual Studio выходные данные сборки отображаются в окне Выходные данные, а все ошибки сборки — в окне Список ошибок.

Если сборка выполнена успешно, приложение запускается в соответствии с типом проекта. Консольные приложения запускаются в окне терминала, классические приложения Windows запускаются в новом окне, веб-приложения запускаются в браузере, размещенном в IIS Express.

Запуск из кода

Если вы выполняете запуск из листинга кода, файла кода или небольшого числа файлов, сначала убедитесь, что запускаемый код происходит из надежного источника и является запускаемой программой. Любое приложение с методом Main , вероятно, является готовой для запуска программой. Вы можете использовать шаблон консольного приложения, чтобы создать проект для работы с приложением в Visual Studio.

Листинг кода для отдельного файла

Несколько листингов кода или файлов на диске

Несколько файлов в папке

Если у вас есть папка с большим количеством файлов, сначала найдите файл проекта или решения. Программы, создаваемые Visual Studio, содержат файлы проекта и решения. В проводнике Windows найдите файлы с расширением .csproj или .sln. Дважды щелкните CSPROJ-файл, чтобы открыть его в Visual Studio. См. раздел Запуск из проекта или решения Visual Studio.

Если код находится в другой среде разработки, файл проекта отсутствует. Откройте папку, выбрав Открыть > Папка в Visual Studio. См. раздел Разработка кода без использования проектов и решений.

Запуск из репозитория Azure DevOps или GitHub

Если код, который вы хотите запустить, находится в GitHub или в репозитории Azure DevOps, можно использовать Visual Studio, чтобы открыть проект непосредственно из репозитория. См. раздел Открытие проекта из репозитория.

Запуск программы

Чтобы начать сборку программы, нажмите зеленую стрелку запуска на панели инструментов Visual Studio либо нажмите клавиши F5 или CTRL+F5. С помощью кнопки Запуск или F5 можно запустить программу в отладчике.

Visual Studio пытается выполнить сборку кода в проекте и запустить его. Если сборка завершится неудачно, ознакомьтесь со следующими разделами, чтобы понять, как успешно собрать проект.

Устранение неполадок

Добавление ссылок

Для успешной сборки код должен быть правильным и иметь правильные ссылки на библиотеки или другие зависимости. Красные волнистые линии в коде или записи в списке ошибок показывают ошибки еще перед компиляцией и запуском программы. Если возникают ошибки, связанные с неразрешенными именами, возможно, потребуется добавить ссылку и/или директиву using . Если код ссылается на отсутствующие сборки или пакеты NuGet, необходимо добавить эти ссылки в проект.

Visual Studio пытается помочь определить отсутствующие ссылки. Если имя не разрешено, в редакторе появляется значок лампочки. Если щелкнуть лампочку, можно увидеть некоторые рекомендации по устранению проблемы. Возможные исправления:

  • Добавление директивы using
  • Добавление ссылки на сборку
  • Установка пакета NuGet

Добавление директивы using

Ниже приведен пример отсутствующей директивы using . Добавьте using System; в начало файла кода, чтобы разрешить неразрешенное имя Console .

Снимок экрана: лампочка для добавления директивы using

Снимок экрана: лампочка для добавления директивы using

Добавление ссылки на сборку

Снимок экрана: меню "Добавление ссылки"

Снимок экрана: меню "Добавление ссылки"

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

Добавление пакета NuGet

Если Visual Studio обнаруживает отсутствующий пакет NuGet, появляется лампочка, позволяющая установить его.

Снимок экрана: лампочка для установки пакета NuGet

Снимок экрана: лампочка для установки пакета NuGet

Если это не решает проблему и Visual Studio не удается найти пакет, попробуйте выполнить поиск в Интернете. См. раздел Установка и использование пакета NuGet в Visual Studio.

в чем разница между Начать Отладку ( Ф5 ) и запуск без отладки ( CTRL - Ф5 ) когда код компилируется в режим выпуска?

Я вижу, что CTRL - Ф5 - это в 10 раз быстрее, чем Ф5 для некоторого кода C++. Если я не ошибаюсь, отладчик присоединен к процессу-исполнителем Ф5 и это не для CTRL - Ф5 . Поскольку это режим выпуска, скомпилированный код не имеет никакой отладочной информации. Итак, если у меня нет точек останова, время выполнения должно быть одинаковым для этих двух, не так ли?!

(предположим, что режимы выпуска и отладки являются типичными конфигурациями, получаемыми при создании нового проекта Visual C++.)

проблема в том, что Windows падает в специальную отладочную кучу, если она обнаруживает, что ваша программа работает под отладчиком. Это происходит на уровне ОС и не зависит от каких-либо параметров режима отладки/выпуска для вашей компиляции.

вы можете обойти эту "функцию", установив переменную среды: _NO_DEBUG_HEAP=1

"начать без отладки" просто говорит Windows, чтобы запустить приложение, как это обычно выполняется.

"начать с отладки" запускает отладчик VS и запускает приложение в отладчике.

Это действительно не имеет большого отношения к настройкам сборки отладки / выпуска.

когда вы создаете конфигурацию "отладки" по умолчанию вашего приложения, у вас будут следующие основные отличия от сборки выпуска:

  • испущенный код не будет оптимизирован, поэтому легче отлаживать, потому что он более точно соответствует вашему источнику
  • компилятор и компоновщик выведут a .PDB файл, содержащий много дополнительной информации, чтобы помочь отладчику-наличие или отсутствие этой информации не имеет никакого значения для производительности кода, просто простота отладки.
  • условные макросы, такие как ASSERT и VERIFY, будут не-ops в сборке выпуска, но активны в сборке отладки.

каждый из этих детали независимы и опционны! вы можете включить или выключить любой или все из них и по-прежнему запускать код под отладчиком, вы просто не найдете жизнь так просто.

при запуске с отладкой вещи работают по-разному по нескольким причинам:

  • отладчик VS очень неэффективен при запуске, отчасти потому, что все в VS медленные версии до VS2010 каждый пиксель экрана будет перекрашен примерно в 30 раз, когда IDE шатается в debug режим с большим миганием и мерцанием.
  • в зависимости от того, как все настроено, отладчик может потратить много времени при запуске, пытаясь загрузить символы (т. е. файлы PDB) для многих и многих компонентов ОС, которые являются частью вашего процесса - он может попытаться получить эти файлы через интернет, что может занять возраст в некоторых обстоятельствах.
  • ряд действий, которые обычно выполняет ваше приложение (загрузка DLL, запуск потоков, обработка исключений), приводят к тому, что отладчик будьте начеку. Это имеет эффект как замедления их, так и того, что они имеют тенденцию работать последовательно.

IsDebuggerPresent() и OutputDebugString() ведут себя по-разному в зависимости от того, подключен отладчик.

IsDebuggerPresent() просто возвращает другое значение, поэтому ваша программа может реагировать на это значение и вести себя по-разному. OutputDebugString() возвращает намного быстрее, когда нет отладчика, поэтому, если он вызывается много раз, вы увидите, что программа работает намного быстрее без отладчика.

при запуске "с отладкой"используется отладочная куча, даже для режима выпуска. Это вызывает серьезные замедления в коде, используя много malloc / free или new/delete, что может произойти в коде C++, не замечая этого, потому что библиотеки/классы, как правило, скрывают этот материал управления памятью от вас.

мое решение содержит несколько проектов, которые могут быть запущены. Иногда я хотел бы запустить один проект без использования настроек запуска проектов моего решения. Когда я нажимаю правой кнопкой мыши на проект, я могу перейти к Debug->Start New Instance, который запускает приложение с отладчиком.

но я хотел бы запустить новый экземпляр без отладчика. Это возможно?

  1. возвращает текущий выбранный проект ( он будет использовать первый выбранный проект, если вы выбрали несколько проектов.)
  2. сохраняет текущий проект запуска
  3. устанавливает текущий выбранный проект в качестве стартового проекта и запускает текущий выбранный проект в режиме "запуск без отладки".
  4. восстанавливает начальный запуск Проект как стартап.

возможно, это новое в VS 2015, но нет необходимости добавлять пользовательский макрос - вы можете найти пункт меню Пуск без отладки в списке вещей, которые вы можете добавить.

перейти к инструментам - > настроить, следуйте изображениям ниже.

Я просто собрал этот макрос.. Это комбинация нескольких фрагментов, которые я нашел в интернете. Если проект настроен на запуск выхода проекта по умолчанию, он найдет и запустит. Если он настроен для запуска определенной программы,он будет работать. Этот макрос также не будет компилировать ваше приложение, поэтому вы захотите убедиться, что он скомпилирован перед запуском макроса. В то же время этот макрос не страдает от проблемы, упомянутой в макросе махина выше.

вот путь к решить проблему, связанную с макросом махина

описание проблемы: Четвертый шаг создает проблему и порождает раздражающий messagebox говоря : сборка должна быть остановлена, чтобы изменить свойство решения. Остановить сборку? ОК или отмена.

наслаждайтесь !

Я пытался сделать то же самое. Это похоже на надзор со стороны команды VS, что вы можете начать с отладки или без нее на уровне решения, но только с отладки на уровне проекта.

одна вещь, которую я заметил, это то, что если вы щелкните правой кнопкой мыши на панели инструментов и выберите "Настроить", во всплывающем окне действий перейдите в категорию "проект". Там есть команда для "Run"и" Run Selected". Интересно, что я добавил как в контекстное меню своего проекта, так и в основное кнопка бар, и элементы, кажется,всегда быть отключен.

также интересно, что команда контекстного меню проекта "Debug / Start New Instance" нигде не встречается в списке настраиваемых команд. Я просмотрел почти все категории и не смог найти его.

надеюсь, кто-то придумает хороший способ сделать это. было бы очень удобно!

короче нет.

Что вы можете сделать, это привязать ключ к "Set as startup project", а затем привязать другой ключ для запуска без отладки. Затем вам придется нажать 2 клавиши, чтобы начать этот проект без отладки, но по крайней мере это будет быстрее, чем используя мышь.

использовать запуск без отладки в меню "отладка" или

Ctrl + F5

или вы можете изменить веб.конфигурационный файл для проекта:

щелкните правой кнопкой мыши на проекте и установите его в качестве стартового проекта.

Нажмите Ctrl + F5

обычно я запускаю исполняемый файл напрямую. Если мне нужно одно решение без режима отладки много, я обычно добавляю их в меню быстрого запуска где-то на моей панели задач.

Это, вероятно, вопрос о запуске, поскольку, несомненно, ответ ослепительно очевиден.

Я использовал Visual Studio в течение многих лет, но это первый раз, когда я создал любую консольную программу.

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

Есть ли способ открыть его, пока я не проверил вывод или не просмотрел результаты после закрытия окна?

ОТВЕТЫ

Ответ 1

Если вы запускаете без отладки (Ctrl + F5), то по умолчанию он предлагает вам нажать return, чтобы закрыть окно. Если вы хотите использовать отладчик, вы должны поставить точку останова в последней строке.

Ответ 2

Щелкните правой кнопкой мыши на вашем проекте

Свойства> Свойства конфигурации> Линкер> Система

Выберите Console (/SUBSYSTEM: CONSOLE) в опции SubSystem или вы можете просто ввести Console в текстовое поле!

Теперь попробуйте. это должно работать

Ответ 3

Вот способ для C/С++:

Ответ 4

Откройте меню отладки- > Нажмите Начать без использования

Ответ 5

Он будет ждать <ENTER> .

Ответ 6

попробуйте вызвать getchar() прямо перед возвратом main() .

Ответ 7

(/SUBSYSTEM: CONSOLE) не работал для моего vs2013 (у меня его уже было).

"run without debugging" не является параметром, так как я не хочу переключаться между отладкой и просмотром вывода.

Решение, используемое в qtcreator до 2.6. Теперь, когда qt растет, vs идет другим путем. Насколько я помню, в vs2008 нам не нужны такие трюки.

Ответ 8

Здесь решение, что (1) не требует каких-либо изменений кода или точек останова, и (2) приостанавливается после завершения программы, чтобы вы могли видеть все, что было напечатано. Он остановится после F5 или Ctrl + F5. Основной недостаток заключается в том, что на VS2013 Express (как проверено) он не загружает символы, поэтому отладка очень ограничена.

Создайте командный файл. Я назвал мой runthenpause.bat со следующим содержимым:

Первая строка будет запускать любую команду, которую вы предоставляете, и до восьми аргументов. Вторая строка будет. пауза.

Откройте свойства проекта | Конфигурационные свойства | Отладка.

Теперь, когда вы запустите, runthenpause.bat запустит ваше приложение, и после того, как ваше приложение завершится, вы остановитесь, чтобы увидеть вывод консоли.

Я опубликую обновление, если выясню, как загрузить символы. Я пробовал /Z7 за этот, но безуспешно.

Ответ 9

просто введите свою последнюю строку кода:

Ответ 10

Начиная с Visual Studio 2017 (15.9.4) есть опция:

Автоматически закрывать консоль, когда отладка прекращается:

Сообщает Visual Studio закрыть консоль в конце сеанса отладки.

Ответ 11

Вы можете запустить исполняемый файл из командной строки. Таким образом, вы можете увидеть весь вывод. Или вы можете сделать что-то вроде этого:

и таким образом окно не будет закрываться, пока вы не введете данные для переменной a .

Ответ 12

добавить "| pause" в поле аргументов команды в разделе отладки в свойствах проекта.

Ответ 13

Просто нажмите CNTRL + F5, чтобы открыть его во внешнем окне командной строки (Visual Studio не контролирует его).

Если это не сработает, добавьте следующее в конец вашего кода:

Подождите, пока вы нажмете клавишу, чтобы закрыть окно терминала, как только код достигнет конца.

Если вы хотите сделать это в нескольких местах, поместите вышеуказанный код в метод (например, private void Pause() ) и вызовите Pause() всякий раз, когда программа достигает возможного конца.

Ответ 14

Несколько лучшее решение:

в начале вашей программы.

  • может использовать std:: exit()
  • может иметь несколько возвратов из основного
  • вы можете запустить свою программу под отладчиком
  • Независимый IDE (+ независимый от ОС, если вы используете трюк cin.sync(); cin.ignore(); вместо system("pause"); )
  • необходимо изменить код
  • не будет останавливаться на std:: terminate()
  • все равно произойдет в вашей программе вне сеанса IDE/debugger; вы можете предотвратить это под Windows, используя:

Ответ 15

Обязательно сделайте любой из них в конце функции main() и перед оператором return .

Ответ 16

В моем случае я испытал это, когда создал проект Empty C++ в версии VS 2017 для сообщества. Вам нужно будет установить для подсистемы значение "Консоль (/SUBSYSTEM: CONSOLE)" в разделе "Свойства конфигурации".

  1. Зайдите в "Просмотр", затем выберите "Менеджер недвижимости"
  2. Щелкните правой кнопкой мыши на проекте/решении и выберите "Свойство". Откроется страница свойств теста.
  3. Перейдите к компоновщику, затем выберите "Система"
  4. Нажмите "Подсистема" и появится выпадающий
  5. Выберите "Консоль (/SUBSYSTEM: CONSOLE)"
  6. Применить и сохранить
  7. В следующий раз, когда вы запустите свой код с помощью "CTRL +F5", вы должны увидеть результат.

Ответ 17

Вы также можете использовать эту опцию

Ответ 18

Ответ 19

Visual Studio 2015, импорт. Потому что я ненавижу когда примеры кода не дают необходимых импортов.

Читайте также: