Практическое руководство. Запуск программы C# в Visual Studio
Способ запуска программы зависит от того, с чего вы начинаете, от типа программы и от необходимости использовать отладчик. В самом простом случае для сборки и запуска открытого проекта в Visual Studio выполните следующие действия.
- Нажмите клавишу F5, выберите Отладка > Начать с отладки в меню Visual Studio или выберите зеленую стрелку Запуск и имя проекта на панели инструментов Visual Studio.
- Для запуска без отладки нажмите клавиши CTRL+F5 или выберите Отладка > Запуск без отладки в меню Visual Studio.
Запуск из проекта
Вы можете запустить проект C# или CSPROJ-файл, если это готовая к запуску программа. Если проект содержит файл C# с методом Main , а его выходные данные представляют собой исполняемый файл (EXE), скорее всего, он запустится в случае успешной сборки.
Если код программы уже находится в проекте 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 и откройте пустой проект консольного приложения C#.
- Замените весь код в CS-файле проекта содержимым листинга кода или файла.
- Переименуйте CS-файл проекта в соответствии с именем файла кода.
Несколько листингов кода или файлов на диске
- Запустите Visual Studio и создайте новый проект соответствующего типа. Если вы не уверены, используйте консольное приложение C#.
- В новом проекте замените весь код в файле кода проекта на содержимое первого листинга кода или файла.
- Переименуйте файл кода проекта в соответствии с именем файла кода.
- Для каждого оставшегося файла кода сделайте следующее.
- Щелкните правой кнопкой мыши узел проекта в Обозревателе решений и выберите пункт Добавить > Существующий элемент или выберите проект и нажмите клавиши SHIFT+ALT+A.
- Найдите и выберите файл кода, чтобы импортировать его в проект.
Несколько файлов в папке
Если у вас есть папка с большим количеством файлов, сначала найдите файл проекта или решения. Программы, создаваемые 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 пытается выполнить сборку кода в проекте и запустить его. Если сборка завершится неудачно, ознакомьтесь со следующими разделами, чтобы понять, как успешно собрать проект.
Устранение неполадок
Код может содержать ошибки. Или код может быть правильным, но зависит от отсутствующих сборок или пакетов NuGet или предназначен для другой версии .NET. В таких случаях вы можете легко исправить сборку.
Добавление ссылок
Для успешной сборки код должен быть правильным и иметь правильные ссылки на библиотеки или другие зависимости. Красные волнистые линии в коде или записи в списке ошибок показывают ошибки еще перед компиляцией и запуском программы. Если возникают ошибки, связанные с неразрешенными именами, возможно, потребуется добавить ссылку и/или директиву using . Если код ссылается на отсутствующие сборки или пакеты NuGet, необходимо добавить эти ссылки в проект.
Visual Studio пытается помочь определить отсутствующие ссылки. Если имя не разрешено, в редакторе появляется значок лампочки. Если щелкнуть лампочку, можно увидеть некоторые рекомендации по устранению проблемы. Возможные исправления:
- Добавление директивы using
- Добавление ссылки на сборку
- Установка пакета NuGet
Добавление директивы using
Ниже приведен пример отсутствующей директивы using . Добавьте using System; в начало файла кода, чтобы разрешить неразрешенное имя Console .


Добавление ссылки на сборку
Ссылки .NET могут быть сборками или пакетами NuGet. В исходном коде издатель или автор обычно объясняет, какие сборки требуются коду и от каких пакетов он зависит. Чтобы добавить ссылку в проект вручную, в Обозревателе решений щелкните правой кнопкой мыши узел Ссылки и выберите команду Добавить ссылку. В диспетчере ссылок найдите и добавьте требуемую сборку.


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


Если это не решает проблему и Visual Studio не удается найти пакет, попробуйте выполнить поиск в Интернете. См. раздел Установка и использование пакета NuGet в Visual Studio.
Использование правильной версии .NET
Так как разные версии .NET Framework обеспечивают некоторую степень обратной совместимости, более новая платформа может выполнять код, написанный для более старой платформы, без каких-либо изменений. Но иногда необходимо ориентироваться на конкретную версию .NET. Вам может потребоваться установить определенную версию .NET Framework или .NET Core. См. раздел Изменение Visual Studio.
Учебник. Сведения об отладке кода C++ с помощью Visual Studio
В этом пошаговом руководстве рассматриваются возможности отладчика Visual Studio. Более полное описание функций отладчика см. в статье c Знакомство с отладчиком Visual Studio. Отладка приложения обычно означает запуск и выполнение приложения с подключенным отладчиком. При этом в отладчике доступно множество способов наблюдения за выполнением кода. Вы можете пошагово перемещаться по коду и просматривать значения, хранящиеся в переменных, задавать контрольные значения для переменных, чтобы отслеживать изменение значений, изучать путь выполнения кода, просматривать выполнение ветви кода и т. д. Если вы не знакомы с процессом отладки, перед выполнением задач в этой статье рекомендуется прочесть документ об отладке для начинающих.
Несмотря на то, что демонстрационное приложение написано на C++, большинство функций применимы к C#, Visual Basic, F#, Python, JavaScript и другим языкам, поддерживаемым Visual Studio (F# не поддерживает возможность "Изменить и продолжить"). F# и JavaScript не поддерживают окно Видимые). Снимки экрана приведены для C++.
В этом руководстве рассмотрены следующие задачи:
- Запуск отладчика и попадание в точки останова.
- Использование команд для пошагового выполнения кода в отладчике.
- Проверка переменных в подсказках к данным и окнах отладчика.
- Просмотр стека вызовов
Предварительные требования
У вас должна быть установлена среда Visual Studio и рабочая нагрузка Разработка классических приложений на C++ .
Установите Visual Studio бесплатно со страницы скачиваемых материалов Visual Studio, если еще не сделали этого.
Установите Visual Studio 2022 бесплатно со страницы скачиваемых материалов Visual Studio 2022, если еще не сделали этого.
Если вам нужно установить рабочую нагрузку, но вы уже используете Visual Studio, выберите пункт Средства > Получить средства и компоненты. , после чего запустится Visual Studio Installer. Запускается Visual Studio Installer. Выберите рабочую нагрузку Разработка классических приложений на C++ , а затем нажмите Изменить.
Создание проекта
Сначала вы создадите проект консольного приложения на C++. Для этого типа проекта уже имеются все нужные файлы шаблонов, что избавляет вас от лишней работы.
Откройте Visual Studio 2017.
В верхней строке меню последовательно выберите Файл > Создать > Проект.
В левой области диалогового окна Новый проект разверните узел Visual C++ и выберите Рабочий стол Windows. В средней области выберите Консольное приложение Windows. Назовите проект get-started-debugging.
Если шаблон проекта Консольное приложение отсутствует, выберите ссылку Открыть Visual Studio Installer в левой области диалогового окна Создать проект. Запускается Visual Studio Installer. Выберите рабочую нагрузку Кроссплатформенная разработка .NET Core и затем элемент Изменить.
Нажмите кнопку ОК.
Новый проект открывается в Visual Studio.
Запустите Visual Studio.
Если окно запуска не открыто, выберите Файл > Окно запуска.
На начальном экране выберите Создать проект.
В поле поиска окна Создание проекта введите консоль. Затем выберите C++ в списке языков и Windows в списке платформ.
Применив фильтры языка и платформы, выберите шаблон Консольное приложение и нажмите кнопку Далее.

Если шаблон Консольное приложение отсутствует, его можно установить из окна Создание проекта. В сообщении Не нашли то, что искали? выберите ссылку Установка других средств и компонентов. После этого в Visual Studio Installer выберите рабочую нагрузку Разработка классических приложений на C++ .
В поле Имя проекта окна Настроить новый проект введите get-started-debugging. Затем нажмите Создать.
Новый проект открывается в Visual Studio.
Создание приложения
Откройте файл get-started-debugging.cpp и замените все его содержимое по умолчанию следующим кодом:
Запуск отладчика
Нажмите клавишу F5 (Отладка > Начать отладку) или кнопку Начать отладку
на панели инструментов отладки.При нажатии клавиши F5 происходит запуск приложения с присоединенным отладчиком. Но пока мы не сделали ничего особенного, чтобы проанализировать код. Поэтому приложение будет просто загружено, и вы увидите выходные данные консоли.
В этом руководстве мы более подробно рассмотрим приложение с отладчиком и познакомимся с возможностями отладчика.
Остановите отладчик, нажав красную кнопку остановки
(SHIFT + F5).В окне консоли нажмите клавишу ВВОД, чтобы закрыть его.
Установка точки останова и запуск отладчика
В цикле for функции main установите точку останова, щелкнув левое поле следующей строки кода:
В месте установки точки останова появится красный круг
.Точки останова — это один из самых простых и важных компонентов надежной отладки. Точка останова указывает, где Visual Studio следует приостановить выполнение кода, чтобы вы могли проверить значения переменных или поведение памяти либо выполнение ветви кода.
Нажмите клавишу F5 или кнопку Начать отладку
. Запустится приложение и отладчик перейдет к строке кода, где задана точка останова.
Желтая стрелка представляет оператор, на котором приостановлен отладчик. В этой же точке приостанавливается выполнение приложения (этот оператор пока не выполнен).
Если приложение еще не запущено, клавиша F5 запускает отладчик и останавливается в первой точке останова. В противном случае F5 продолжает выполнение приложения до следующей точки останова.
Точки останова полезны, если вам известны строка или раздел кода, которые вы хотите подробно изучить. Дополнительные сведения о различных типах точек останова, которые можно задать, например об условных точках останова, см. в разделе Использование точек останова.
Переход по коду в отладчике с помощью пошаговых команд
Здесь мы используем в основном сочетания клавиш, так как они позволяют быстро выполнять приложение в отладчике (эквивалентные команды, например команды меню, отображаются в круглых скобках).
Во время приостановки в цикле for в методе main дважды нажмите клавишу F11 (или выберите Отладка > Шаг с заходом), чтобы перейти к вызову метода SendMessage .
После двойного нажатия клавиши F11 вы должны находиться на следующей строке кода:
Еще раз нажмите клавишу F11, чтобы выполнить шаг с заходом в метод SendMessage .
Желтый указатель перемещается в метод SendMessage .

F11 — это команда Шаг с заходом, которая выполняет приложение с переходом к следующему оператору. Клавишу F11 удобно использовать для более детальной проверки потока выполнения. (Мы также покажем другие варианты более быстрого перемещения по коду.) По умолчанию отладчик пропускает непользовательский код (дополнительные сведения см. в статье об отладке в режиме "Только мой код").
Предположим, что вы закончили изучать метод SendMessage и хотите выйти из него, но остаться в отладчике. Это можно сделать с помощью команды Шаг с выходом.
Нажмите сочетание клавиш SHIFT + F11 (или Отладка > Шаг с выходом).
Эта команда возобновляет выполнение приложения (и работу отладчика) до возврата данных текущим методом или текущей функции.
Вы должны вернуться в цикл for в методе main , приостановленный на вызове метода SendMessage .
Нажмите клавишу F11 несколько раз, пока не вернетесь к вызову метода SendMessage .
Во время приостановки на вызове метода один раз нажмите клавишу F10 (или выберите Отладка > Шаг с обходом).

Обратите внимание, что в этот раз отладчик не заходит в метод SendMessage . Клавиша F10 перемещает отладчик без захода в функции или методы в коде приложения (код продолжает выполняться). Нажав клавишу F10 (а не F11) в вызове метода SendMessage , мы пропускаем код реализации для SendMessage (пока это нас не интересует). Дополнительные сведения о различных способах перемещения по коду см. в разделе Навигация по коду в отладчике.
Переход по коду с помощью команды "Выполнение до щелкнутого"
Нажмите клавишу F5, чтобы перейти к точке останова.
В редакторе кода прокрутите вниз и наведите указатель мыши на функцию std::wcout в методе SendMessage , чтобы в левой части появилась зеленая кнопка Выполнение до щелкнутого
. В подсказке для кнопки выводится "Выполнить до этого места".
Кнопка Выполнение до щелкнутого впервые появилась в Visual Studio 2017. (Если кнопка с зеленой стрелкой отсутствует, воспользуйтесь клавишей F11, чтобы переместить отладчик в нужное место.)
Нажмите кнопку Выполнение до щелкнутого
.Отладчик перемещается к функции std::wcout .
Использование этой кнопки аналогично установке временной точки останова. Функция Выполнение до щелкнутого удобна для быстрой работы в видимой области кода приложения (можно щелкнуть в любом открытом файле).
Быстрый перезапуск приложения
Нажмите кнопку Перезапустить
на панели инструментов отладки (CTRL + SHIFT + F5).Кнопка Перезапустить позволяет сэкономить время, затрачиваемое на остановку приложения и перезапуск отладчика. Отладчик приостанавливается в первой точке останова, достигнутой при выполнении кода.
Отладчик еще раз останавливается в точке останова, ранее заданной вами в цикле for .
Проверка переменных с помощью подсказок по данным
Функции, позволяющие проверять переменные, являются самыми полезными возможностями отладчика. Реализовывать эту задачу можно разными способами. Часто при попытке выполнить отладку проблемы пользователь старается выяснить, хранятся ли в переменных значения, которые требуются ему в определенное время.
При приостановке на операторе name += letters[i] наведите указатель мыши на переменную letters и увидите ее значение по умолчанию — size= <10>.
Разверните переменную letters , чтобы просмотреть ее свойства, включая все элементы, которые она содержит.
Затем наведите указатель мыши на переменную name , чтобы просмотреть ее текущее значение — пустую строку.
Несколько раз нажмите клавишу F5 (или выберите Отладка > Продолжить), чтобы выполнить несколько итераций по циклу for , каждый раз снова приостанавливая выполнение в точке останова и наводя указатель мыши на переменную name , чтобы просмотреть ее значение.

Значение переменной изменяется при каждой итерации цикла for — f , затем fr , fre и т. д.
Часто при отладке требуется быстро проверить значения свойств в переменных, чтобы убедиться, что в них хранятся ожидаемые значения. Советы по данным — отличный способ это сделать.
Проверка переменных с помощью окон "Видимые" и "Локальные"
Взгляните на окно Видимые в нижней части редактора кода.
Если оно закрыто, откройте его во время приостановки в отладчике, выбрав Отладка > Окна > Видимые.
В окне Видимые отображаются переменные и их текущие значения. В окне Видимые отображаются все переменные, используемые в текущей или предыдущей строке (сведения о зависящем от языка поведении см. в соответствующей документации).
Затем посмотрите на окно Локальные на вкладке рядом с окном Видимые.
Разверните переменную letters , чтобы отобразить элементы, которые она содержит.

В окне Локальные показаны переменные, которые находятся в текущей области, то есть текущем контексте выполнения.
Установка контрольного значения
В основном окне редактора кода щелкните правой кнопкой мыши переменную name и выберите команду Добавить контрольное значение.
В нижней части редактора кода откроется окно Контрольное значение. В окне Контрольное значение можно указать переменную (или выражение), которую необходимо отслеживать.
Теперь у вас есть контрольное значение, заданное для переменной name , и по мере перемещения по отладчику вы можете наблюдать за изменением его значения. В отличие от других окон переменных, в окне Контрольное значение всегда отображаются просматриваемые вами переменные (они выделяются серым цветом, когда находятся вне области действия).
Просмотр стека вызовов
Во время приостановки в цикле for щелкните окно Стек вызовов, которое по умолчанию открыто в нижней правой области.
Если оно закрыто, откройте его во время приостановки в отладчике, выбрав Отладка > Окна > Стек вызовов.
Несколько раз нажмите клавишу F11, пока отладчик не приостановится в методе SendMessage . Взгляните на окно Стек вызовов.

В окне Стек вызовов показан порядок вызова методов и функций. В верхней строке приведена текущая функция (в данном приложении метод SendMessage ). Во второй строке показано, что функция SendMessage была вызвана из метода main и т. д.
Окно Стек вызовов аналогично перспективе "Отладка" в некоторых интегрированных средах разработки, например Eclipse.
Стек вызовов хорошо подходит для изучения и анализа потока выполнения приложения.
Дважды щелкните строку кода, чтобы просмотреть исходный код. При этом также изменится текущая область, проверяемая отладчиком. Это действие не перемещает отладчик.
Для выполнения других задач можно воспользоваться контекстными меню из окна Стек вызовов. Например, можно вставлять точки останова в указанные функции, перемещать отладчик с помощью функции Выполнение до текущей позиции и изучать исходный код. Дополнительные сведения см. в разделе Практическое руководство. просмотреть стек вызовов.
Изменение потока выполнения
Дважды нажмите клавишу F11, чтобы запустить функцию std::wcout .
Приостановив отладчик в вызове метода SendMessage , с помощью мыши захватите желтую стрелку (указатель выполнения) в левой части и переместите ее вверх на одну строку — обратно в std::wcout .
Нажмите клавишу F11.
Отладчик повторно выполнит функцию std::wcout (вы увидите это в выходных данных окна консоли).
Изменяя поток выполнения, можно решать множество задач, например тестировать различные пути выполнения кода или повторно выполнять код без перезапуска отладчика.
Как правило, при работе с этой функцией необходимо соблюдать осторожность — вы увидите соответствующее предупреждение во всплывающей подсказке. Могут отображаться и другие предупреждения. При перемещении указателя предыдущее состояние приложения не возвращается.
Чтобы продолжить выполнение приложения, нажмите клавишу F5.
Поздравляем с завершением этого учебника!
Следующие шаги
В этом руководстве вы узнали, как запускать отладчик, осуществлять пошаговое выполнение кода и проверять переменные. Возможно, вы захотите получить более полное представление о функциях отладчика, а также воспользоваться ссылками на дополнительные сведения.
Visual studio 2022 как запустить код
Для создания программы на C++ нам нужны, как минимум, две вещи: текстовый редактор для набора кода и компилятор для превращения этого кода в приложение. При этом для компиляции необходимо запускать консоль или терминал. Однако есть и более удобный способ — использование различных сред разработки или IDE. Они, как правило, содержит встроенный текстовый редактор, компилятор и позволяют скомпилировать и запустить программу по одному клику мыши, а также имеют еще множество разных вспомогательных возможностей.
Для программирования под Windows наиболее популярной средой разработки, если говорить о C++, является Visual Studio. Данную среду можно найти по ссылке https://www.visualstudio.com/ru/vs/. Она доступна в ряде редакций. В частности, можно использовать бесплатную и полнофункциональную версию Visual Studio 2017 Community.
После загрузки и запуска установщика Visual Studio в нем необходимо отметить пункт «Разработка классических приложений на C++»:

Выбрав все необходимые пункты, нажмем ОК для запуска установки. После установки Visual Studio создадим первый проект. Для этого перейдем в меню File (Файл) -> New (Создать) -> Project. (Проект) , и нам откроется окно создания нового проекта. В нем перейдем в левой части окна к языку С++ и выберем его подсекцию General :

В центральной части окна в качестве типа проекта выберем Empty Project , а внизу окна в поле для имени проекта дадим проекту имя HelloApp и нажмем на ОК для создания проекта.
После этого Visual Studio создаст пустой проект. Добавим в него текстовый файл для набора исходного кода. Для этого в окне Solution Explorer (Обозреватель решений) нажмем правой кнопкой мыши на узел Source Files и в контекстом меню выберем Add -> New Item. :

Затем нам откроется окно для добавления нового элемента:

Здесь нам надо выбрать пункт C++ File(.cpp) , а внизу окна укажем для файла имя Hello.cpp . Как правило, исходные файлы на C++ имеют расширение .сpp .
После добавления файла изменим опции проекта. Для этого перейдем к пункту меню Project -> Properties :

И в открывшемся окне свойств проекта в левой части перейдем к секции Linker ->System и далее для поля SubSystem установим значение Console(/SUBSYSTEM:CONSOLE) , выбрав нужный элемент в списке:

Тем самым мы указываем, что мы хотим создать консольное приложение. После установки этого значения нажмем на кнопку «Применить», чтобы новые настройки конфигурации вступили в силу.
После добавления файла проект будет иметь следующую структуру:

Вкратце пробежимся по этой структуре. Окно Solution Explorer содержит в решение. В данном случае оно называется HelloApp. Решение может содержать несколько проектов. По умолчанию у нас один проект, который имеет то же имя — HelloApp. В проекте есть ряд узлов:
External Dependencies : отображает файлы, которые используются в файлах исходного кода, но не являются частью проекта
Header Files : предназначена для хранения заголовочных файлов с расширением .h
Resource Files : предназначена для хранения файлов ресурсов, например, изображений
Source Files : хранит файлы с исходным кодом
Теперь собственно создадим первую программу и определим в файле Hello.cpp простейший код, который будет выводить строку на консоль:
Здесь использован весь тот код, который был рассмотрен в предыдущих темах про компиляцию с помощью g++.
Теперь запустим программу. Для этого в Visual Studio нажмем на сочетание клавиш Ctrl+F5 или выберем пункт меню Debug -> Start Without Debugging :

И в итоге Visual Studio передаст исходный код компилятору, который скомпилирует из кода исполняемый файл exe, который потом будет запущен на выполнение. И мы увидим на запущенной консоли наше сообщение:

После этого на жестком диске в проекте в папке Debug можно увидеть скомпилированный файл exe, который мы можем запускать независимо от Visual Studio: