Запуск программы C# в Visual Studio
Область применения:Visual Studio Visual Studio для Mac
Visual Studio Code ![]()
Способ запуска программы зависит от того, с чего вы начинаете, от типа программы и от необходимости использовать отладчик. В самом простом случае для сборки и запуска открытого проекта в Visual Studio выполните следующие действия.
- Нажмите клавишу F5, выберите Отладка>Начать с отладки в меню Visual Studio или выберите зеленую стрелку Запуск и имя проекта на панели инструментов Visual Studio.
- Для запуска без отладки нажмите клавиши CTRL+F5 или выберите Отладка>Запуск без отладки в меню Visual Studio.


Запуск из проекта
Вы можете запустить проект C# или CSPROJ-файл, если это готовая к запуску программа. Если проект содержит файл C# с методом Main , а его выходные данные представляют собой исполняемый файл (EXE), скорее всего, он запустится в случае успешной сборки. Более новые версии C# не требуют Main метода. Вместо этого выполнение программ начинается с инструкций верхнего уровня. См. статью «Программы без основных методов».
- Если код программы уже находится в проекте Visual Studio, откройте проект. Для этого дважды щелкните CSPROJ-файл в проводнике Windows или выберите пункт Открыть проект в Visual Studio, найдите CSPROJ-файл и выберите его.
- После загрузки проекта в Visual Studio, если решение Visual Studio содержит несколько проектов, убедитесь, что для проекта задан метод Main , чтоб он считался запускаемым проектом. Чтобы задать запускаемый проект, щелкните имя проекта или узел правой кнопкой мыши в Обозревателе решений, затем выберите пункт Назначить запускаемым проектом в контекстном меню.


Запуск из кода
Если вы выполняете запуск из листинга кода, файла кода или небольшого числа файлов, сначала убедитесь, что запускаемый код происходит из надежного источника и является запускаемой программой. Любое приложение с Main методом, вероятно, является запущенной программой, но с текущей версией C#, программы без 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 .


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


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


Если это не решает проблему и Visual Studio не удается найти пакет, попробуйте выполнить поиск в Интернете. См. раздел Установка и использование пакета NuGet в Visual Studio.
Использование правильной версии .NET
Так как разные версии .NET Framework обеспечивают некоторую степень обратной совместимости, более новая платформа может выполнять код, написанный для более старой платформы, без каких-либо изменений. Но иногда необходимо использовать определенную версию платформа .NET Framework. Вам может потребоваться установить определенную версию .NET Framework или .NET Core. См. раздел Изменение Visual Studio.
Сведения об изменении целевой платформа .NET Framework версии см. в разделе «Изменение целевой платформы». Дополнительные сведения см. в разделе Устранение неполадок, связанных с настройкой для определенных версий платформы .NET Framework.
Следующие шаги
- Изучите среду разработки Visual tudio, прочитав раздел Добро пожаловать в интегрированную среду разработки Visual Studio.
- Создание первого приложения C#.
Как отлаживать и профилировать любой EXE-файл с помощью Visual Studio
Вам когда-нибудь нужно было отлаживать или профилировать исполняемый файл (файл .exe), для которого у вас нет исходного кода или вы не можете его собрать? Тогда наименее известный тип проекта Visual Studio, проект EXE, для вас!
В Visual Studio вы можете открыть любой EXE-файл как «проект». Просто перейдите в Файл -> Открыть -> Проект/Решение и перейдите к файлу .exe . Как если бы это был файл .sln . Visual Studio откроет этот EXE-файл как проект. Эта функция существует уже давно. Она работает на всех поддерживаемых в настоящее время версиях Visual Studio, и документация по ней находится на странице Отладка приложения, которое не является частью решения Visual Studio.
Отладка
Как и в обычном проекте, вы можете начать отладку с помощью F5, которая запустит EXE и подключит отладчик. Если вы хотите отладить запуск, вы можете запустить с помощью F11, который запустит EXE и остановится на первой строке пользовательского кода. Оба эти параметра доступны в контекстном меню для проекта EXE в окне Solution Explorer, как показано ниже:

Для отладки понадобятся символы, файлы PDB, для EXE и любых DLL, которые нужно отладить. Visual Studio будет следовать тому же процессу и попытается получить символы также, как и при отладке обычного проекта. Поскольку маловероятно, что файлы PDB были распространены вместе с EXE-файлом, возможно, вы захотите найти их в сборке или, что еще лучше, на сервере символов. Дополнительную информацию и рекомендации по использованию символов можно найти в этом блоге.
Для эффективной отладки вам также понадобится исходный код, который использовался для сборки EXE, или даже для нескольких файлов, которые вас интересуют. Вам нужно найти эти файлы и открыть их в Visual Studio. Если исходный код не совпадает с исходным кодом, который был собран, EXE Visual Studio предупредит вас, когда вы попытаетесь вставить точку останова, и точка останова не будет привязана. Это поведение может быть изменено в окне Settings peek window. В окне просмотра параметров щелкните текст ссылки Must match source, а затем установите флажок, чтобы разрешить несоответствующий источник, как показано ниже. Конечно, с несоответствующим источником вы никогда не знаете, что произойдет, так что используйте это только на свой страх и риск.
Если EXE был собран с SourceLink, то информация об источнике будет включена в PDB, и Visual Studio попытается загрузить источник автоматически. Это действительно хорошая причина использовать SourceLink с вашими проектами. Даже если у вас есть локальный набор, у вас может не быть той версии, которая использовалась для сборки двоичного файла. SourceLink — ваш надежный способ убедиться, что правильный источник связан с правильным двоичным файлом.
Если вы не можете получить исходный код, у вас еще есть несколько вариантов:
- Используйте инструмент для декомпиляции сборок обратно в C#, который вы можете перекомпилировать в новую сборку, чтобы исправить старую.
- ILSpy — отличный выбор для этого, но есть и множество других хороших платных и бесплатных инструментов.
- Документ Source Not Found содержит ссылку на view disassembly. Имейте в виду, что если вы привыкли к отладке кода на C#, представление о разборке (view disassembly) является крайним средством.

Профилирование
Вы также можете использовать инструменты профилирования с EXE-файлом, запустив их из Отладка -> Профилирование производительности. На странице запуска инструментов профилирования вы можете выбрать, какие инструменты использовать против EXE. Дополнительную информацию о профилировании можно найти в этих документах ( https://docs.microsoft.com/en-us/visualstudio/profiling/profiling-feature-tour?view=vs-2019).
Заключение
Вот и все. Краткий обзор того, как вы можете использовать Visual Studio для отладки и профилирования приложений, которые вы не создаете и которые могут даже не иметь исходного кода. В следующий раз, когда вам понадобится отладить или профилировать EXE-файл, не забудьте, что вы можете открыть его как решение в Visual Studio!
- Блог компании Microsoft
- Visual Studio
Отладка приложения, которое не входит в решение Visual Studio (C++, C#, Visual Basic, F#)
Область применения:
Visual Studio Visual Studio для Mac
Visual Studio Code 
Иногда требуется выполнить отладку приложения (EXE-файл), которое не является частью решения Visual Studio. Это может быть проект с открытой папкой, вы или кто-то другой мог создать приложение вне Visual Studio или вы получили приложение в другом месте.
- Для проекта с открытой папкой в Visual Studio (без файла проекта или решения) см. статью Выполнение и отладка кода или (для C++) Настройка параметров отладки с помощью launch.vs.json.
- Для приложения, которое не существует в Visual Studio, отладка обычно выполняется путем запуска за пределами Visual Studio, а затем присоединения с помощью функции Присоединение к процессу в отладчике Visual Studio. Дополнительные сведения см. в статье Присоединение к выполняемым процессам. Присоединение к приложению требует выполнения некоторых операций вручную, и это занимает несколько секунд. Из-за этой задержки присоединение не помогает отладить проблемы при запуске или приложение, которое не ждет ввода данных пользователем и быстро завершается. В таких ситуациях можно создать проект Visual Studio EXE для приложения или импортировать его в существующее решение C#, Visual Basic или C++. Не все языки программирования поддерживают исполняемые проекты.
Функции отладки для приложения, не созданного в Visual Studio, ограниченны, независимо от того, присоединяетесь ли вы к нему или добавляете в решение Visual Studio.
Если у вас есть исходный код, лучше всего импортировать его в проект Visual Studio. Затем запустите отладочную сборку приложения.
Если у вас нет исходного кода и у приложения нет отладочной информации в совместимом формате, вам доступно немного функций отладки.
Создание EXE-проекта для существующего приложения
- В Visual Studio последовательно выберите Файл>Открыть>Проект.
- В диалоговом окне Открыть проект выберите Все файлы проекта, если они еще не выбраны, в раскрывающемся списке рядом с полем Имя файла.
- Перейдите к EXE-файлу, выберите его и щелкните Открыть. Файл появится в новом временном решении Visual Studio.
- Запустите отладку приложения, выбрав команду выполнения, например Начать отладку в меню Отладка.
Чтобы импортировать приложение в решение Visual Studio
- Когда решение C++, C# или Visual Basic будет открыто в Visual Studio, выберите Файл>Добавить>Существующий проект.
- В диалоговом окне Открыть проект выберите Все файлы проекта, если они еще не выбраны, в раскрывающемся списке рядом с полем Имя файла.
- Перейдите к EXE-файлу, выберите его и щелкните Открыть. Файл появится как новый проект в текущем решении.
- Выберите новый файл и запустите отладку приложения, выбрав команду выполнения, например Начать отладку в меню Отладка.
См. также
- Параметры отладчика и подготовка
- Безопасность отладчика
- DBG-файлы
Советы и рекомендации по улучшению работы Visual Studio
Область применения:
Visual Studio Visual Studio для Mac
Visual Studio Code 
Рекомендации по повышению производительности Visual Studio предназначены для редких ситуаций, когда может возникать нехватка памяти. В таких случаях можно оптимизировать определенные компоненты Visual Studio, которые могут не использоваться. Следующие советы не предназначены в качестве общих рекомендаций.
Если при работе с продуктом у вас возникают затруднения из-за проблем с памятью, свяжитесь с нами через средство обратной связи.
Использование 64-разрядной ОС
При переходе с 32-разрядной на 64-разрядную версию Windows вы увеличиваете объем виртуальной памяти, доступной Visual Studio, с 2 до 4 ГБ. Обновление 64-разрядной операционной системы позволяет Visual Studio обрабатывать большие рабочие нагрузки.
Дополнительные сведения см. в разделе «Ограничения памяти» для выпусков Windows и Windows Server.
Visual Studio 2022 в Windows — это 64-разрядное приложение. Более ранние версии — 32-разрядная версия.
Отключение автоматического восстановления файлов
Visual Studio автоматически повторно открывает документы, открытые во время предыдущего сеанса. Это действие автоматического восстановления файлов может продлить время загрузки решения до 30 % или более в зависимости от типа проекта и открытых документов. Конструкторы, такие как Windows Forms и XAML, а также некоторые файлы JavaScript и TypeScript, могут быть медленно открыты.
Visual Studio уведомляет вас в желтой полосе, когда автоматическое восстановление документов приводит к замедлению загрузки решения. Вы можете отключить автоматическое повторное открытие файлов, выполнив следующие действия.
- Выберите пункты меню Сервис>Параметры, чтобы открыть диалоговое окно Параметры.
- На странице Проекты и решения>Общие отмените выбор пункта Повторно открыть документы при загрузке решения.
Если отключить автоматическое восстановление файлов, быстро перейти к нужным файлам можно с помощью одной из команд Перейти к:
- Чтобы использовать общие функции Перейти к, выберите Изменить>Перейти к>Перейти ко всем или нажмите CTRL+T.
- Перейдите к последней правке в решении, выбрав Изменить>Перейти к>Перейти к последнему изменению или нажав CTRL+SHIFT+BACKSPACE.
- Используйте Перейти к последнему файлу, чтобы просмотреть список недавно просмотренных файлов в решении. Выберите Изменить>Перейти к>Перейти к последнему файлу или нажмите CTRL+1, CTRL+R.
Настройка параметров отладки
Если во время сеансов отладки обычно не хватает памяти, можно оптимизировать производительность, изменив одну или несколько конфигураций.
- Включение режима «Только мой код» Простейшая оптимизация заключается в том, чтобы включить функцию Только мой код, которая загружает только символы для проекта. Включение этой функции может привести к значительной экономии памяти при отладке управляемых приложений (.NET). Для некоторых типов проектов этот параметр уже включен по умолчанию. Чтобы включить функцию Только мой код, выберите Сервис>Параметры>Отладка>Общие и затем Включить только мой код.
- Указание символов для загрузки При отладке машинного кода для загрузки файлов символов (.pdb) требуется большой объем памяти. Вы можете настроить параметры отладочных символов для экономии памяти. Как правило, решение настраивается для загрузки только модулей из проекта. Чтобы указать загрузку символов, выберите Сервис>Параметры>Отладка>Символы. Задайте параметр Только указанные модули вместо Все модули и затем укажите, какие модули нужно загружать. Во время отладки также можно щелкнуть определенные модули правой кнопкой мыши в окне Модули, чтобы явно включить модуль в загрузку символов. (Чтобы открыть окно во время отладки, выберите Отладка>Окна>Модули.) Дополнительные сведения см. в разделе «Указание символов и исходных файлов» в отладчике.
- Отключение средств диагностики Рекомендуется отключить профилирование ЦП после использования. Эта функция может потреблять очень много ресурсов. После включения профилирования ЦП это состояние распространяется и на все последующие сеансы отладки, поэтому его следует отключать явным образом. Вы можете сохранить некоторые ресурсы, отключив средства диагностики во время отладки, если вам не нужны предоставленные функции. Для отключить Средства диагностики, запустите сеанс отладки, выберите Средства>Параметры>Отладка>Общие и снимите флажок Включить средства диагностики при отладке. Дополнительные сведения см. в разделе «Средства профилирования».
Отключение инструментов и расширений
Для повышения производительности можно отключить некоторые инструменты или расширения.
Часто проблемы производительности можно выявить, отключая расширения по одному и проверяя уровень производительности.
Управляемые службы языка (Roslyn)
Сведения о производительности .NET Compiler Platform («Roslyn») см. в статье Особенности производительности для крупных решений.
- Отключение CodeLens Visual Studio выполняет задачу Найти все ссылки для каждого метода при его отображении. CodeLens предоставляет такие функции, как встроенное отображение числа ссылок. Эта работа выполняется в отдельном процессе, например ServiceHub.RoslynCodeAnalysisService32. В крупных решениях или системах с небольшим объемом ресурсов эта функция может значительно снижать производительность. В случае возникновения проблем с памятью, например при загрузке большого решения на компьютере с 4 ГБ памяти или высокой загрузки ЦП при выполнении этого процесса, попробуйте отключить CodeLens для высвобождения ресурсов. Чтобы отключить CodeLens, выберите Сервис>Параметры>Текстовый редактор>Все языки>CodeLens и отмените выбор данной функции. Дополнительные сведения см. в разделе «Поиск изменений кода» и других журналов с помощью CodeLens.
Другие инструменты и расширения
- Отключение расширений Расширения — это дополнительные программные компоненты в Visual Studio, которые предоставляют новые или расширяют имеющиеся функциональные возможности. Расширения часто могут выступать источником проблем с памятью. При возникновении подобных проблем попробуйте отключать расширения по одному за раз, чтобы оценить, как это влияет на сценарий или рабочий процесс. Чтобы отключить расширения, перейдите в меню Расширение>Управление расширениями и отключите нужное расширение.
- Отключение режима карты В режиме карты на полосе прокрутки показывается миниатюрное изображение строк кода. Режим карты включен по умолчанию. Чтобы отключить режим карты, последовательно выберите Инструменты>Параметры>Текстовый редактор>Все языки>Полосы прокрутки, а затем в разделе Поведение снимите флажок Использовать режим карты для вертикальной полосы прокрутки.
- Отключение переноса по словам При включенном переносе по словам отображается часть длинной строки кода, выступающая за пределы текущей ширины окна редактора кода. Перенос по словам включен по умолчанию. Чтобы отключить оболочку слов для проекта, над которым вы работаете, перейдите к разделу «Изменить>расширенную >оболочкуword». (Этот параметр можно переключать с помощью одних и тех же команд меню.) Чтобы отключить перенос по словам для всех проектов, последовательно выберите в меню пункты Инструменты>Параметры>Общие>Текстовый редактор>Все языки>Общие, а затем в разделе Параметры снимите флажок Перенос по словам.
- Отключение конструктора XAML Конструктор XAML по умолчанию включен, но потребляет ресурсы только при открытии файла .xaml. Если вы работаете с XAML-файлами, но не хотите использовать функции конструктора, отключите эту функцию, чтобы освободить некоторую память. Чтобы отключить конструктор XAML, последовательно выберите в меню пункты Инструменты>Параметры>Конструктор XAML>Включить конструктор XAML, а затем снимите этот флажок.
- Удаление рабочих нагрузок Если вы не собираетесь использовать определенные рабочие нагрузки, удалите их с помощью установщика Visual Studio. Это позволяет оптимизировать расходы ресурсов при запуске и выполнении за счет пропуска ненужных пакетов и сборок.
- Добавление неотслеживаемых файлов в локальный файл .gitignore Visual Studio выполняет команду Git git status для неотслеживаемых файлов, чтобы вам было удобно добавлять новые файлы в репозиторий. При наличии большого количества неотслеживаемых файлов git status может потреблять большой объем памяти. Чтобы сделать эти файлы игнорируемыми и повысить производительность git status , можно добавить такие файлы или папки в локальный файл .gitignore. Чтобы получить доступ к файлу, выберите Git>Параметры>Параметры репозитория Git. Затем в разделе файлов Git выберите «Добавить «, чтобы создать файл gitignore, или выберите «Изменить «, если у вас уже есть.
- Функция фиксации графа в инструментах GitНовые возможности в Visual Studio 2022 версии 17.2. Если при просмотре репозитория Git или журнала ветви в Visual Studio возникают задержки, вы можете воспользоваться новой функцией фиксации графа. Чтобы использовать эту функцию, необходимо скачать и установить Visual Studio 2022. Дополнительные сведения о функции фиксации графа см. в этой записи блога.
Принудительная сборка мусора
Среда CLR использует систему управления памятью, подразумевающую сборку мусора. В этой системе память иногда используется объектами, которые больше не нужны. Это временное состояние; Сборщик мусора освобождает эту память на основе его производительности и эвристики использования ресурсов. Вы можете заставить среду CLR собрать всю неиспользуемую память, используя сочетание клавиш в Visual Studio. Если в диспетчере задач возникает значительное количество мусора, ожидающего сборки мусора, вы увидите, что использование памяти процесса devenv.exe удаляется в диспетчере задач. Потребность в этом методе возникает довольно редко. Тем не менее после завершения операции, потребляющей много ресурсов (такой как полная сборка, сеанс отладки или событие открытия решения), он может помочь определить объем памяти, действительно используемый процессом. Так как Visual Studio смешанный (управляемый & машинный код), иногда это возможно для собственного распределителя и сборщика мусора для конкуренции за ограниченные ресурсы памяти. В условиях высокого использования памяти это может помочь принудительно запустить сборщик мусора.
Чтобы принудительно выполнить сборку мусора, используйте это сочетание клавиш: CTRL+ ALT +SHIFT+F12, CTRL+ ALT SHIFT+F12 (дважды нажмите клавишу ALT).+
Если принудительная сборка мусора надежно делает работу сценария, отправьте отчет с помощью средства обратной связи Visual Studio, так как это поведение, скорее всего, будет ошибкой.
Подробное описание сборщика мусора CLR см. в статье Основы сборки мусора.
См. также
