Что такое решения и проекты в Visual Studio?
Область применения:Visual Studio Visual Studio для Mac
Visual Studio Code ![]()
В этой статье описывается разница между проектом и решением в Visual Studio. В нем также кратко описывается создание проекта и использование окна инструментов Обозреватель решений для взаимодействия с проектами и решениями.
Проекты
При создании в Visual Studio приложения или веб-сайта вы начинаете с проекта. С логической точки зрения проект содержит все файлы, которые будут скомпилированы в исполняемую программу, библиотеку или веб-сайт. Эти файлы могут включать исходный код, значки, изображения, файлы данных и многое другое. Проект также содержит параметры компилятора и другие файлы конфигурации, которые может потребоваться для взаимодействия программы с различными службами или компонентами.
Файл проекта
Visual Studio использует MSBuild для создания каждого проекта в решении, и каждый проект содержит файл проекта MSBuild. Расширение имени файла отражает тип проекта, например проект C# (CSPROJ), проект Visual Basic (VBPROJ) или проект базы данных (DBPROJ). Файл проекта — это XML-документ, содержащий все сведения и инструкции, необходимые MSBuild для создания проекта. Такие сведения и инструкции включают содержимое, требования к платформе, сведения о версиях, параметры веб-сервера или сервера базы данных, а также задачи для выполнения.
Файлы проекта основаны на схеме XML MSBuild. Чтобы просмотреть содержимое более новых файлов проекта в стиле SDK в Visual Studio, щелкните правой кнопкой мыши узел проекта в Обозреватель решений и выберите «Изменить проекта». Чтобы просмотреть содержимое проектов .NET, сначала выгрузите проект (щелкните правой кнопкой мыши узел проекта в Обозреватель решений и выберите «Выгрузить проект«). Затем щелкните проект правой кнопкой мыши и выберите пункт Изменить .
Использовать решения или проекты в Visual Studio для редактирования, сборки и отладки кода необязательно. Можно просто открыть папку с файлами исходного кода в Visual Studio и начать редактирование. Дополнительные сведения см. в статье Разработка кода в Visual Studio без использования проектов и решений.
Создать новые проекты
Самый простой способ создать новый проект — использовать шаблон проекта с нужным типом проекта. Шаблон проекта содержит базовый набор предварительно созданных файлов кода, файлов конфигурации, ресурсов и параметров. Для выбора шаблона проекта нажмите Файл>Создать>Проект. Дополнительные сведения см. в статье Создание проекта в Visual Studio.
Вы можете также создать пользовательский шаблон проекта, чтобы затем использовать его для создания новых проектов. Дополнительные сведения см. в статье Создание шаблонов проектов и элементов.
При создании нового проекта Visual Studio сохраняет его в расположении по умолчанию — %USERPROFILE%\source\repos. Чтобы изменить это расположение, перейдите в раздел Средства>Параметры>Проекты и решения>Расположения. Дополнительные сведения см. в диалоговом окне «Параметры»: «Проекты и решения>».
Решения
Проект находится внутри решения. Несмотря на его имя, решение не является «ответом». Это просто контейнер для одного или нескольких связанных проектов, а также сведения о сборке, параметры окна Visual Studio и любые другие файлы, которые не связаны с определенным проектом.
Файл решения
В Visual Studio используются два типа файлов (SLN и SUO) для хранения параметров, связанных с решениями:
| Расширение | Имя | Описание |
|---|---|---|
| .SLN | Решение Visual Studio | Организует проекты, элементы проектов и решений в решении. |
| SUO | Параметры пользователя решения | Сохраняет настройки и параметры уровня пользователя, например точки останова. |
Решение описывается текстовым файлом (SLN) в собственном уникальном формате; его обычно не изменяют вручную. И наоборот, SUO-файл является скрытым и не отображается, если проводник имеет параметры по умолчанию. Для отображения скрытых файлов в меню Вид проводника установите флажок Скрытые элементы.
Папка решения
Папка решения — это виртуальная папка, которая доступна только в Обозревателе решений, где с ее помощью можно группировать проекты в решении. Если нужно найти файл решения на компьютере, перейдите к разделу Средства>Параметры>Проекты и решения>Расположения. Дополнительные сведения см. в диалоговом окне «Параметры»: «Проекты и решения>».
Пример проекта и решения, созданного с нуля, а также пошаговые инструкции и пример кода см. в статье Общие сведения о проектах и решениях.
Обозреватель решений
После создания проекта можно просматривать проект, решение и связанные с ними элементы, а также для управлять ими с помощью обозревателя решений. На следующем рисунке показан обозреватель решений с решением C#, включающим два проекта:

Панель инструментов в верхней части Обозреватель решений имеет кнопки для перехода с представления решения на представление папки, фильтрация ожидающих изменений, отображение всех файлов, свертывание всех узлов, просмотр страниц свойств, предварительный просмотр кода в редакторе кода и многое другое.
Многие команды меню доступны в контекстном меню правой кнопкой мыши для различных элементов в Обозреватель решений. К таким командам относится сборка проекта, управление пакетами NuGet, добавление ссылок, переименование файла и запуск тестов. Это лишь некоторые из них. Дополнительные сведения см. в разделе Сведения об Обозревателе решений.
Начиная с версии 17.7, вы также можете сравнить файлы в Обозреватель решений с помощью параметров контекстного меню правой кнопкой мыши. Дополнительные сведения см. в разделе «Средство сравнения файлов» на странице «Сведения о Обозреватель решений».
В обозревателе решений можно настроить способ вложения файлов для проектов ASP.NET Core. Дополнительные сведения см. в разделе «Вложение файлов» в Обозреватель решений.
Если вы закрыли Обозреватель решений и хотите вновь открыть его, выберите Вид>Обозреватель решений в строке меню или нажмите клавиши CTRL+ALT+L. Если же вы закрыли боковые вкладки и хотите восстановить их в расположениях по умолчанию, выберите Окно>Сброс макета окон в строке меню.
Чтобы просмотреть изображения и значки приложений, отображаемые в Visual Studio, скачайте библиотеку изображений Visual Studio.
См. также
- Управление свойствами проектов и решений
- Фильтрация решений в Visual Studio
- Справочник по миграции и обновлению проекта для Visual Studio
Создание проекта в Visual Studio для Mac
Visual Studio для Mac планируется выйти на пенсию 31 августа 2024 года в соответствии с современной политикой жизненного цикла Майкрософт. Хотя вы можете продолжать работать с Visual Studio для Mac, есть несколько других вариантов для разработчиков на Mac, таких как предварительная версия нового расширения комплекта разработки C# для VS Code.
Открытие диалогового окна создания проекта
Создать проект в Visual Studio для Mac можно несколькими способами. При первом открытии Visual Studio для Mac отображается окно запуска. В нем можно выбрать элемент Создать для перехода на экран создания проекта.
Кроме того, в окне запуска можно также искать и открывать последние проекты и решения. Чтобы открыть последние проекты, можно также перейти в строку меню и выбрать Файл > Последние решения

Если среда Visual Studio для Mac уже открыта с загруженным решением, вы можете создать решение, перейдя в строку меню и выбрав Файл > Создать решение. При таком создании решения уже загруженное решение закрывается.
Создание нового проекта
В диалоговом окне Новый проект по умолчанию отображаются недавно используемые шаблоны, отсортированные по времени использования.
Если вы не хотите использовать недавний шаблон, можете выбрать категорию в левой части диалогового окна. Каждая категория содержит несколько шаблонов проектов на ваш выбор. Щелкнув тип проекта, вы можете просмотреть описание в правой части экрана.

Настройка нового проекта
На следующих экранах после выбора шаблона вам будет предложено выполнить все действия, необходимые для настройки проекта (они могут зависеть от типа проекта).
Для всех проектов нужно указать новый проект, а также расположение для хранения файлов. Если проект является частью нового решения, а не добавляется в существующее, также нужно указать имя решения.
При необходимости на этом этапе также можно настроить параметры системы управления версиями Git. На следующем рисунке представлен пример последнего этапа настройки для проекта .NET Core:

Добавление дополнительных проектов в решение
Вы можете добавить в решение дополнительные проекты, щелкнув решение правой кнопкой мыши в окне решения, выбрав Добавить > Добавить новый проект или Добавить > Добавить существующий проект.
При добавлении нового проекта вам потребуется создать его, как описано в разделе Настройка нового проекта.
При добавлении существующего проекта вы сможете перейти к нужному проекту на своем компьютере и добавить его в решение.
См. также
Как создать новый проект в существующем решении в Visual Studio на Mac?
Как создать новый проект в существующем решении в Visual Studio на Mac?
Отслеживать
28.5k 12 12 золотых знаков 59 59 серебряных знаков 118 118 бронзовых знаков
задан 5 ноя 2017 в 20:31
31 1 1 бронзовый знак
5 ноя 2017 в 20:58
Да, спасибо, ходила сюда, прежде чем задать вопрос, но здесь указано, что это возможно, а вот как? Я правильно понимаю, если я уже создала проект и решение в Visual Studio и мне нужно создать еще один проект в том же решении, я иду в File->New Solution(т.к. только там есть опция создания New Project) и при попытке указать уже существующий Solution, в который мне нужно добавить проект, система выдает, что такой Solution уже существует и предлагает перезаписать его
5 ноя 2017 в 21:26
контекстное меню Solution посмотрите (в винде это правой кнопкой мыши, не знаю, как там в маке), я думаю, там должно быть создание проекта.
5 ноя 2017 в 21:52
Супер, спасибо, есть в контекстном солюшена)
Создание общего решения Visual Studio (.sln файл) из нескольких отдельных проектов: One Solution to Rule Them All
Для тестирования нашего C/C++ анализатора PVS-Studio мы часто проверяем различные проекты с открытым исходным кодом и публикуем отчёты о найденных в них ошибках. И, конечно, очевидно, что для этого нам интересны проекты с большими объёмами исходного кода (сотни тысяч строк), ведь в нескольких десятках файлов ничего особенно не потестировать. Уже несколько раз нам попадались большие наборы, состоящие из сотен небольших открытых проектов. Примером таких коллекций проектов могут служить, например, наборы тестовых примеров для различных SDK и Framework’ов. Нам такие коллекции проектов особенно интересно проверять для тестирования поддержки анализатором различных специфичных конструкций кода, подтипов Visual C++ проектов и т.п.
Но у такого типа проектов существует не очевидный на первый взгляд недостаток — отсутствие единого проектного файла – решения. Зачастую, каждый проект в таких наборах независим и имеет совой solution. Понятно, что проверка 4-5 сотен sln файлов — не самое увлекательное занятие, причём работать с полученными таким путём сотнями отчётов будет весьма затруднительно.
Логика подсказывает, что для всех проектных файлов можно создать и один независимый sln файл — One Solution to Rule Them All, объединяющий все требуемые проекты. Но оказалось, что такая простая задача является нетривиальной для Visual Studio, ведь диалог добавления проекта позволяет выбирать только один проект за раз! Так что, даже если вам очень повезёт, и все проекты будут лежать в одной директории, процесс их добавления всё равно окажется мучительным.
И тут же поверхностный поиск показал, что не мы одни столкнулись с подобной проблемой. Но что обычно предлагают в таком случае? Сгенерировать «вручную» новый solution, и, открыв его как текстовый файл, добавить необходимые строки для каждого проекта. Что же скрывает за собой подобный метод? Ведь помимо необходимости вычитывать из каждого проекта его идентификаторы и конфигурации, не дай бог возникнет конфликт между зависимостями или теми же GUID’ами у хотя бы 2-х проектов. Ведь тогда придётся вручную обходить весь такой solution, чтобы определить проблему! В итоге же писать такую программу, которая должна будет всё это учитывать, но скорее всего, понадобится лишь пару раз, становится весьма обременительно.
Но ведь вся эта функциональность уже присутствует в самой Visual Studio — этот как раз тот самый Add Existing Project. Если бы была только возможность автоматизировать вызов данной команды и получение списка требуемых файлов. Но такая возможность существует, приём она может быть описана всего 4 строками кода:
EnvDTE.DTE dte = Package.GetService(typeof(EnvDTE._DTE)) as EnvDTE.DTE; m_dte = (EnvDTE80.DTE2)dte; foreach (string file in Directory.GetFiles(ProjectRoot, "*.vcxproj", SearchOption.AllDirectories)) m_dte.Solution.AddFromFile(file, false);
Мы видим, что объект типа EnvDTE80.DTE2 позволяет программное добавить в текущее решение проект по имени файла. А ведь это как раз то, чего мы хотим! Причём метод AddFromFile также позволяет контролировать и добавляемые проекты, возвращая ссылку на каждый из них. А обертка этого кода в try. catch блок позволит отсечь все возможные конфликты между отдельными проектами.
Что же такое EnvDTE80.DTE2 и как его получить? Объект DTE (development environment) — это верхний объект API расширения среды Visual Studio, позволяющего автоматизировать работу с IDE и даже расширять возможности. Получить доступ к DTE можно несколькими разными способами, причём как из стороннего внешнего процесса, так и создав плагин-расширение (extension package) или подключаемый модуль для среды Visual Studio. А на нашем сайте есть цикл статей, посвящённый основам разработки подобных модулей расширения, в котором вы можете найти простые инструкции по созданию такого модуля прямо сейчас!
