Практическое руководство. Запуск программы C# в Visual Studio
Действия, необходимые для запуска программы, зависят от того, с чего вы начинаете, какой тип программы, приложения или службы используете и хотите ли произвести запуск в отладчике. В самом простом случае, когда проект открыт в Visual Studio, выполните его сборку и запуск, нажав клавиши CTRL+F5 (Запуск без отладки) или F5 (Запуск с отладкой) или нажмите зеленую стрелку (кнопка запуска) на главной панели инструментов Visual Studio.
Запуск из проекта
Если у вас уже есть код для программы в проекте Visual Studio, откройте этот проект. Чтобы открыть проект, дважды щелкните файл CSPROJ в проводнике Windows или в Visual Studio, выберите Открыть проект, найдите файл проекта (CSPROJ) и выберите его.
После загрузки проекта в Visual Studio нажмите клавиши CTRL+F5 (Запуск без отладки) или используйте зеленую кнопку Пуск на панели инструментов Visual Studio, чтобы запустить программу. Если существует несколько проектов, то проект с методом Main нужно задать в качестве запускаемого. Чтобы задать запускаемый проект, щелкните правой кнопкой мыши узел проекта и выберите Назначить запускаемым проектом.
Visual Studio пытается выполнить сборку и запуск проекта. При наличии ошибок сборки выходные данные сборки отображаются в окне Выход, а ошибки — в окне Список ошибок.
Если сборка выполнена успешно, приложение запускается соответствующим типу проекта способом. Консольные приложения запускаются в окне терминала, классические приложения Windows запускаются в новом окне, веб-приложения запускаются в браузере (размещенном в IIS Express) и т. д.
Запуск из кода
Листинг кода для отдельного файла
Запустите Visual Studio, откройте пустой консольный проект C#, выберите весь код в файле CS, который уже находится в проекте, и удалите его. Затем вставьте содержимое кода в файл CS. При вставке кода перезапишите или удалите код, который существовал ранее. Переименуйте файл в соответствии с исходным кодом.
Листинги кода для нескольких файлов
Запустите Visual Studio, откройте пустой консольный проект C#, выберите весь код в файле CS, который уже находится в проекте, и удалите его. Затем вставьте содержимое первого файла кода в файл CS. Переименуйте файл в соответствии с исходным кодом.
Для второго файла щелкните правой кнопкой мыши узел проекта в обозревателе решений, чтобы открыть контекстное меню для проекта, и выберите Добавить > Существующий элемент (или используйте сочетание клавиш SHIFT+ALT+A) и выберите файлы кода.
Несколько файлов на диске
Создайте проект соответствующего типа (если не уверены, используйте консольное приложение C#).
Щелкните правой кнопкой мыши узел проекта, выберите Добавить > Существующий элемент, чтобы выбрать файлы и импортировать их в проект.
Запуск из папки
При работе с папкой, содержащей множество файлов, сначала проверьте наличие проекта или решения. Если программа была создана с помощью Visual Studio, необходимо найти файл проекта или решения. Найдите файлы с расширением CSPROJ или SLN, а затем в проводнике Windows дважды щелкните один из них, чтобы открыть его в Visual Studio. См. раздел Запуск из проекта или решения Visual Studio.
Если у вас нет файла проекта, например, если код был написан в другой среде разработки, откройте папку верхнего уровня с помощью функции Открыть папку в Visual Studio. См. раздел Разработка кода без использования проектов и решений.
Запуск из репозитория Azure DevOps или GitHub
Если код, который вы хотите запустить, находится в GitHub или в репозитории Azure DevOps, можно использовать Visual Studio, чтобы открыть проект непосредственно из репозитория. См. раздел Открытие проекта из репозитория.
Запуск программы
Чтобы запустить программу, нажмите зеленую стрелку (кнопка запуска) на главной панели инструментов Visual Studio либо нажмите клавиши F5 или CTRL+F5 для запуска программы. При использовании кнопки Пуск запуск выполняется в отладчике. Visual Studio пытается выполнить сборку кода в проекте и запустить его. Если это работает, отлично! В противном случае продолжайте чтение для получения некоторых сведений о том, как добиться успешной сборки.
Устранение неполадок
Добавление ссылок
Для успешной сборки код должен быть правильным и иметь правильные ссылки на библиотеки или другие зависимости. Наличие ошибок в программе до ее компиляции или запуска можно определить по наличию красных волнистых линий, а также в окне Список ошибок. Если возникают ошибки, связанные с неразрешенными именами, возможно, потребуется добавить ссылку и (или) директиву using. Если код ссылается на любые сборки или пакеты NuGet, необходимо добавить эти ссылки в проект.
Visual Studio пытается помочь определить отсутствующие ссылки. Если имя не разрешено, в редакторе появляется значок лампочки. Если щелкнуть лампочку, можно увидеть некоторые рекомендации по устранению проблемы. Возможные исправления:
Отсутствующая директива using
Например, на следующем экране можно добавить using System; в начало файла кода, чтобы разрешить неразрешенное имя Console :
Отсутствующая ссылка на сборку
Вы можете найти сборки и добавить ссылки, следуя инструкциям в разделе Добавление и удаление ссылок с помощью диспетчера ссылок.
Отсутствующий пакет NuGet
Если Visual Studio обнаруживает отсутствующий пакет NuGet, появляется лампочка, позволяющая установить его:
Если это не решает проблему и Visual Studio не удается найти пакет, попробуйте выполнить поиск в Интернете. См. раздел Установка и использование пакета NuGet в Visual Studio.
Узнайте, как использовать редактор кода
В этом 10-минутном введении, посвященном редактору кода в Visual Studio, мы добавим код в файл, чтобы рассмотреть некоторые способы, упрощающие написание, понимание кода и навигацию по нему в Visual Studio.
Установите Visual Studio бесплатно со страницы скачиваемых материалов Visual Studio, если еще не сделали этого.
Установите Visual Studio бесплатно со страницы скачиваемых материалов Visual Studio, если еще не сделали этого.
Установите Visual Studio 2022 бесплатно со страницы скачиваемых материалов предварительной версии Visual Studio 2022, если еще не сделали этого.
Эта статья предполагает, что вы уже знакомы с языком программирования. В противном случае рекомендуется сначала посмотреть одно из кратких руководств по языкам программирования Python или C# либо по созданию консольного приложения с помощью Visual Basic или C++.
Создание файла кода
Для начала создайте файл и добавьте в него код.
В меню Файл в строке меню выберите пункты Создать > Файл.
В диалоговом окне Новый файл в разделе Общие выберите Класс Visual C# и нажмите кнопку Открыть.
Новый файл открывается в редакторе с каркасом класса C#. (Обратите внимание, что нам не нужно создавать полный проект Visual Studio, чтобы получить некоторые преимущества редактора кода. Вам нужен только файл кода!)
Использование фрагментов кода
Visual Studio предоставляет удобные фрагменты кода, позволяющие быстро и легко создавать часто используемые блоки кода. Фрагменты кода доступны для различных языков программирования, включая C#, Visual Basic и C++. Давайте добавим фрагмент void Main C# в файл.
Два раза нажмите клавишу TAB, чтобы вставить фрагмент кода.
Для разных языков программирования доступны различные фрагменты кода. Вы можете просмотреть фрагменты кода, доступные для используемого языка, выбрав Изменить > IntelliSense > Вставить фрагмент и указав папку вашего языка. Для C# список выглядит следующим образом.
Список включает фрагменты кода для создания класса, конструктора, цикла for, операторов if и switch и многое другое.
Закомментирование кода
Панель инструментов, которая находится в строке кнопок под строкой меню в Visual Studio, поможет повысить продуктивность написания кода. Например, можно переключить режим завершения IntelliSense (IntelliSense — это помощник в написании кода, который отображает список подходящих методов и многое другое), увеличить или уменьшить отступ строки или закомментировать код, который вы не хотите компилировать. В этом разделе мы закомментируем код.
Символы комментария C# // добавляются в начало каждой выбранной строки, чтобы закомментировать код.
Свертывание блоков кода
Просмотр определений символов
Щелкните правой кнопкой мыши любой из экземпляров string и выберите пункт Показать определение в контекстном меню. Или нажмите Alt+F12.
Закройте окно просматриваемого определения, щелкнув небольшое поле со знаком «x» в его правом верхнем углу.
Использование IntelliSense для завершения слов
Технология IntelliSense крайне полезна при написании кода. Она может отображать сведения о доступных членах типа или сведения о параметрах для различных перегрузок метода. Вы также можете использовать IntelliSense для завершения слова после того, как ввели достаточно знаков для однозначного его определения. Давайте добавим строку кода для вывода упорядоченных строк в окне консоли — это стандартное место для отображения выходных данных программы.
Чтобы вставить оставшуюся часть слова query с помощью функции завершения слов IntelliSense, нажмите клавишу Tab.
Рефакторинг имени
Поместите курсор на определение переменной _words и выберите пункт Переименовать в контекстном меню или нажмите клавиши CTRL+R, CTRL+R.
В верхней правой части редактора отображается всплывающее диалоговое окно Переименование.
Введите нужное имя words. Обратите внимание, что ссылка на words в запросе также переименовывается автоматически. Перед нажатием клавиши ВВОД установите флажок Включить комментарии во всплывающем окне Переименование.
Нажмите клавишу ВВОД.
Знакомство с отладчиком Visual Studio
В этом разделе представлены средства отладчика, предоставляемые Visual Studio. В контексте Visual Studio отладка приложения обычно означает запуск приложения с подключенным отладчиком (то есть в режиме отладчика). При этом в отладчике доступно множество способов наблюдения за выполнением кода. Вы можете пошагово перемещаться по коду и просматривать значения, хранящиеся в переменных, задавать контрольные значения для переменных, чтобы отслеживать изменение значений, изучать путь выполнения кода и т. д. Если вы не знакомы с процессом отладки, перед выполнением задач в этом разделе рекомендуется прочесть документ об отладке для начинающих.
Описанные здесь функции применяются к C#, C++, Visual Basic, JavaScript и другим языкам, поддерживаемым Visual Studio (если не указано иное).
Установка точки останова и запуск отладчика
Для отладки нужно запустить приложение с отладчиком, подключенным к процессу приложения. Для этого чаще всего используется клавиша F5 (Отладка > Начать отладку). Однако сейчас у вас, возможно, не задано ни одной точки останова для проверки кода приложения, поэтому мы сначала зададим их, а затем начнем отладку. Точки останова — это один из самых простых и важных компонентов надежной отладки. Точка останова указывает, где Visual Studio следует приостановить выполнение кода, чтобы вы могли проверить значения переменных или поведение памяти либо выполнение ветви кода.
Если вы открыли файл в редакторе кода, точку останова можно задать, щелкнув в поле слева от строки кода.
Нажмите клавишу F5 (Отладка > Начать отладку) или Начать отладку кнопку 
Точки останова полезны, если вам известны строка или раздел кода, которые вы хотите подробно изучить.
Переход по коду в отладчике с помощью пошаговых команд
Мы указываем сочетания клавиш для большинства команд, так как они ускоряют навигацию по коду вашего приложения. (Эквивалентные команды, например команды меню, приведены в круглых скобках.)
Для запуска приложения с подключенным отладчиком нажмите клавишу F11 (Отладка > Шаг с заходом). F11 — это команда Шаг с заходом, которая выполняет приложение с переходом к следующему оператору. При запуске приложения с помощью клавиши F11 отладчик останавливается на первом выполняемом операторе.
Желтая стрелка представляет оператор, на котором приостановлен отладчик. В этой же точке приостанавливается выполнение приложения (этот оператор пока не выполнен).
Клавишу F11 удобно использовать для более детальной проверки потока выполнения. (Мы также покажем другие варианты более быстрого перемещения по коду.) По умолчанию отладчик пропускает непользовательский код (дополнительные сведения см. в статье об отладке в режиме «Только мой код»).
В управляемом коде вы увидите диалоговое окно с запросом о том, хотите ли вы получать уведомления при автоматическом обходе свойств и операторов (поведение по умолчанию). Если вы хотите изменить этот параметр позже, отключите параметр Шаг с обходом свойств и операторов в меню Сервис > Параметры в разделе Отладка.
Шаг с обходом по коду для пропуска функций
Когда вы находитесь на строке кода, представляющей собой вызов функции или метода, можно нажать клавишу F10 (Отладка > Шаг с обходом) вместо F11.
Клавиша F10 продолжает выполнение отладчика без захода в функции или методы в коде приложения (код продолжает выполняться). Нажав клавишу F10, вы можете обойти код, который вас не интересует. Так можно быстро перейти к важному для вас коду.
Шаг с заходом в свойство
Как упоминалось ранее, по умолчанию отладчик пропускает управляемые свойства и поля, однако команда Шаг с заходом в конкретное расположение позволяет переопределить это поведение.
Щелкните правой кнопкой мыши свойство или поле и выберите Шаг с заходом в конкретное расположение, а затем выберите один из доступных параметров.
Быстрое выполнение до точки в коде с помощью мыши
Находясь в отладчике, наведите курсор на строку кода, пока слева не появится кнопка выполнения до щелкнутого (Выполнить до этого места) 
Кнопка выполнения до щелкнутого (Выполнить до этого места) доступна начиная с версии Visual Studio 2017.
Нажмите кнопку выполнения до щелкнутого (Выполнить до этого места). Отладчик продолжает выполнение до строки кода, которую вы щелкнули.
Использование этой кнопки аналогично установке временной точки останова. Кроме того, эта команда удобна для быстрой работы в видимой области кода приложения. Выполнение до щелкнутого можно использовать в любом открытом файле.
Вывод отладчика из текущей функции
В некоторых случаях может потребоваться продолжить сеанс отладки, однако полностью проведя отладчик сквозь текущую функцию.
Нажмите клавиши SHIFT+F11 (или выберите Отладка > Шаг с выходом).
Эта команда возобновляет выполнение приложения (и перемещает отладчик) до возврата текущей функции.
Выполнить до текущей позиции
Если вы находитесь в режиме редактирования кода (то есть работа отладчика не приостановлена), щелкните правой кнопкой мыши строку кода в приложении и выберите команду Выполнить до текущей позиции (или нажмите клавиши CTRL+F10). Эта команда запускает отладку и задает временную точку останова на текущей строке кода.
Если имеются заданные точки останова, отладчик приостанавливается в первой достигнутой точке останова.
Нажимайте клавишу F5, пока не достигнете строки кода, для которой выбрали Выполнить до текущей позиции.
Эта команда удобна, когда вы редактируете код и хотите быстро задать временную точку останова и одновременно запустить отладчик.
Вы можете использовать функцию Выполнить до текущей позиции в окне Стек вызовов во время отладки.
Быстрый перезапуск приложения
Нажмите кнопку Перезапустить 
Кнопка Перезапустить позволяет сэкономить время, затрачиваемое на остановку приложения и перезапуск отладчика. Отладчик приостанавливается в первой точке останова, достигнутой при выполнении кода.
Если вы хотите остановить отладчик и вернуться в редактор кода, вы можете нажать красную кнопку 
Изменение кода и продолжение отладки (C#, VB, C++, XAML)
В большинстве языков, поддерживаемых Visual Studio, можно изменять код во время сеанса отладки, а затем продолжать отладку. Для использования этой функции щелкните код, чтобы установить в нем курсор, когда отладчик приостановлен, внесите изменения и нажмите клавишу F5, F10 или F11, чтобы продолжить отладку.
Дополнительные сведения об этой функции и ее ограничениях см. в статье Изменить и продолжить.
Сведения об изменении кода XAML во время сеанса отладки см. в статье Создание и отладка выполняющегося кода XAML с помощью горячей перезагрузки XAML.
Проверка переменных с помощью подсказок по данным
Теперь, когда вы немного освоились, у вас есть хорошая возможность проверить состояние приложения (переменные) с помощью отладчика. Функции, позволяющие проверять переменные, являются одними из самых полезных в отладчике. Реализовывать эту задачу можно разными способами. Часто при попытке выполнить отладку проблемы пользователь старается выяснить, хранятся ли в переменных значения, которые требуются в определенном состоянии приложения.
Приостановив работу в отладчике, наведите указатель мыши на объект, чтобы просмотреть его значение свойства по умолчанию (в этом примере имя файла market 031.jpg является значением свойства по умолчанию).
Разверните объект для просмотра его свойств (таких как свойство FullPath в этом примере).
Часто при отладке бывает необходимо быстро проверить значения свойств для объектов. Лучше всего для этого подходят подсказки по данным.
В большинстве поддерживаемых языков можно изменять код во время сеанса отладки. Дополнительные сведения см. в разделе Изменить и продолжить.
Проверка переменных с помощью окон «Видимые» и «Локальные»
Во время отладки взгляните на окно Видимые в нижней части редактора кода.
В окне Видимые отображаются переменные вместе с текущим значением и типом. Окно Видимые содержит все переменные, используемые в текущей строке или предыдущей строке (в C++ в окне отображаются переменные в трех предыдущих строках кода; сведения о зависящем от языка поведении см. в соответствующей документации).
В JavaScript окно Локальные поддерживается, а окно Видимые — нет.
Взгляните в окно Локальные. В окне Локальные показаны переменные, которые находятся в текущей области.
В этом примере объекты this и f находятся в области действия. Дополнительные сведения см. в статье Проверка переменных в окнах «Видимые» и «Локальные».
Установка контрольного значения
В окне Контрольное значение можно указать переменную (или выражение), которую необходимо отслеживать.
Во время отладки щелкните правой объект кнопкой мыши и выберите пункт Добавить контрольное значение.
Просмотр стека вызовов
Во время отладки щелкните окно Стек вызовов, которое по умолчанию открыто в нижней правой области.
В окне Стек вызовов показан порядок вызова методов и функций. В верхней строке приведена текущая функция (в данном примере метод Update ). Во второй строке показано, что функция Update была вызвана из свойства Path.set и т. д. Стек вызовов хорошо подходит для изучения и анализа потока выполнения приложения.
Окно Стек вызовов аналогично перспективе «Отладка» в некоторых интегрированных средах разработки, например Eclipse.
Дважды щелкните строку кода, чтобы просмотреть исходный код. При этом также изменится текущая область, проверяемая отладчиком. Это не перемещает отладчик.
Для выполнения других задач можно воспользоваться контекстными меню из окна Стек вызовов. Например, можно вставлять точки останова в указанные функции, перезапускать приложение с помощью функции Выполнение до текущей позиции и изучать исходный код. См. практическое руководство по просмотреть стек вызовов.
Изучение исключения
Когда приложение выдает исключение, отладчик переходит к строке кода, вызвавшей исключение.
В этом примере помощник по исправлению ошибок показывает исключение System.Argument и сообщение об ошибке, где сказано, что путь имеет недопустимую форму. Таким образом, мы знаем, что ошибка произошла в аргументе метода или функции.
Помощник по исправлению ошибок — это отличная функция, которая помогает отлаживать ошибки. Используя помощник по исправлению ошибок, вы также можете, например, просмотреть сведения об ошибке и добавить контрольное значение. При необходимости вы также можете изменить условия для возникновения конкретного исключения. См. дополнительные сведения об обработке исключений в коде в разделе Приемы и инструменты отладки.
Помощник по исправлению ошибок заменил помощник по исключениям, который запускается в Visual Studio 2017.
Разверните узел Параметры исключений, чтобы просмотреть дополнительные параметры для обработки исключения этого типа, однако в рамках этого тура ничего менять не требуется.
Настройка отладки
Вы можете настроить проект для сборки, как описано в статье о конфигурации отладки или выпуска, настроить свойства проекта для отладки или настроить общие параметры для отладки. Кроме того, можно настроить отладчик для вывода пользовательских сведений с помощью таких компонентов, как атрибута DebuggerDisplay либо платформы NatVis для C/C++.
Свойства отладки зависят от типа проекта. Например, можно задать аргумент, который будет передан в приложение при запуске. Чтобы получить доступ к свойствам проекта приложения, щелкните имя проекта правой кнопкой мыши в обозревателе решений и выберите Свойства. Свойства отладки обычно отображаются на вкладке Сборка или Отладка в зависимости от типа проекта.
Отладка интерактивных приложений ASP.NET в Службе приложений Azure
Средство Snapshot Debugger создает моментальный снимок рабочих приложений при выполнении интересующего вас кода. Чтобы указать отладчику на необходимость создать моментальный снимок, следует установить точки прикрепления и точки ведения в коде. Отладчик позволяет увидеть источник ошибки, не затрагивая трафик рабочего приложения. Средство Snapshot Debugger позволяет значительно сократить затраты времени на устранение проблем, возникающих в рабочих средах.
Просмотр моментальных снимков с помощью возврата на шаг назад в IntelliTrace (Visual Studio Enterprise)
Функция возврата на шаг назад в IntelliTrace автоматически создает моментальный снимок вашего приложения для каждого события точки останова и шага отладчика. Используя записанные моментальные снимки, вы можете возвращаться к этим точкам останова и шагам, просматривая предыдущее состояние приложения. Возможность возврата на шаг назад в IntelliTrace позволяет сэкономить время в тех случаях, когда вам нужно просмотреть предыдущее состояние приложения, но не требуется перезапускать отладку или воссоздавать необходимое состояние приложения.
Для просмотра моментальных снимков и перехода между ними используйте кнопки На шаг назад и На шаг вперед на панели инструментов отладки. С помощью этих кнопок можно перейти к событиям, которые отображаются на вкладке События в окне Средства диагностики.
Отладка проблем производительности
Если приложение работает слишком медленно или использует слишком много памяти, возможно, вам следует протестировать его с помощью средств профилирования на раннем этапе. Дополнительные сведения о средствах профилирования, таких как средство загрузки ЦП и анализатор памяти, см. в разделе Знакомство со средствами профилирования.
Следующие шаги
В этом руководстве вы кратко познакомились с функциями отладчика. Отдельные функции, например точки останова, вы можете изучить более подробно.
Use breakpoints in the Visual Studio debugger (Использование точек останова в отладчике Visual Studio)































