Сравнение проекта Visual Studio и решения

Будучи новичком в VS, как я могу думать об этих двух концепциях, в чем разница?


person bmw0128    schedule 05.03.2010    source источник


Ответы (10)


Решение представляет собой контейнер для проектов и отслеживает зависимости между проектами.

person pzr    schedule 05.03.2010

Я нахожу недостающую информацию в других ответах (по крайней мере, для людей, которые приходят из других IDE, таких как, скажем, Eclipse). Сказать, что решение — это контейнер для проектов, — это только часть дела. Концептуальная особенность проекта VS (определяющая его «детализацию») заключается в том, что один проект создает один результат: обычно исполняемый файл или библиотеку (dll). Таким образом, если вы собираетесь написать три исполняемых файла, использующих связанный код, вы создадите одно решение и как минимум три проекта, а возможно, и больше.

person leonbloy    schedule 30.05.2011
comment
Не забывайте о проектах с общим кодом, которые можно включать без самостоятельной сборки. - person AyCe; 08.10.2017

Просто придумать метафору..

Решение похоже на дом, проект — на комнату. Каждая комната обеспечивает часть функциональности, тогда как дом, вместилище комнат, предоставляет средства для соединения комнат вместе и организации их соответствующим образом.

Немного банально, но я придумал это на лету, так что терпите меня :)

person Cody C    schedule 05.03.2010

Не помогает и то, что Visual Studio делает вещи еще более запутанными. «Новый проект» фактически создает новое РЕШЕНИЕ, содержащее проект. «Открыть проект» фактически открывает решение, содержащее один (или несколько) проектов. (В меню «Файл» написано «Открыть проект/решение», но на самом деле это открытие решений. Нет «Закрыть проект», есть только «Закрыть решение», что является точным.

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

person Chryses    schedule 17.09.2015
comment
Какой смысл иметь несколько проектов в одном решении? я этого не понимаю.. - person Liga; 19.02.2020

На случай, если кто-то решит прокрутить страницу вниз... Я подумал, что документы MS довольно хорошо описали различия. Я скопировал (и перефразировал) соответствующие фрагменты здесь:

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

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

В буквальном смысле проект — это XML-файл (.vbproj, .csproj, .vcxproj), который определяет иерархию виртуальных папок вместе с путями ко всем содержащимся в нем элементам и всем параметрам сборки.

В Visual Studio файл проекта используется обозревателем решений для отображения содержимого и параметров проекта. При компиляции проекта механизм MSBuild использует файл проекта для создания исполняемого файла. Вы также можете настроить проекты для производства других видов вывода.

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

С решением связан файл .suo, в котором хранятся настройки, предпочтения и информация о конфигурации для каждого пользователя, работавшего над проектом.

person jmrah    schedule 01.06.2017

Решение может иметь много проектов.

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

person Justin Niessner    schedule 05.03.2010

Проект содержит исполняемые файлы и библиотечные файлы, составляющие приложение или компонент приложения.

Решение — это заполнитель для логически связанных проектов, составляющих приложение. Например, у вас могут быть отдельные проекты для графического интерфейса вашего приложения, уровня доступа к базе данных и т. д. Проекты будут конкретными подразделениями для функциональности вашей программы, а решением будет зонтик, объединяющий их всех в рамках одного приложения.

person David    schedule 05.03.2010

Решение – это читаемый текстовый файл с расширением .sln и структурированным содержимым, описывающим содержащиеся в нем проекты. Проект – это читаемый текстовый файл в формате XML с расширением .vcxproj и структурированным содержимым в соответствии со схемой XML, основная цель которого — содержать список исходных кодов. имена файлов и их зависимости или ссылки на исходные коды других проектов.

person eigenfield    schedule 14.08.2018

Решения — это контейнеры для проектов — вы также можете использовать их для организации элементов, которые используются в разных связанных проектах (общие библиотеки DLL и т. д.).

person Oded    schedule 05.03.2010

Решения — это контейнеры, используемые Visual Studio для организации одного или нескольких связанных проектов. Когда вы открываете решение в Visual Studio, оно автоматически загружает все содержащиеся в нем проекты.

Когда вы создаете новый проект в Visual Studio, он автоматически создает решение для размещения проекта, если решение еще не открыто.

Вы можете установить зависимости проектов от других проектов в решении. Зависимый проект строится после сборки проекта, от которого он зависит.

Дополнительные сведения см. на странице https://docs.microsoft.com/en-us/visualstudio/ide/quickstart-projects-solutions

Если вы работаете с Eclipse, вы, вероятно, перейдете к построению пути к проекту и добавите зависимость от другого проекта или добавите внешнюю банку. В VS вы можете сделать это в одном контейнере, называемом решением, где все связанные проекты сгруппированы вместе.

Например. Допустим, вы создаете приложение для Android и iOS в xamrin, может быть некоторый общий код и ресурсы, которые можно было бы использовать в отдельном проекте, а затем ваши проекты для Android и iOS могут зависеть от этого общего проекта кода. Также у вас могут быть проекты для тестирования этих проектов и т. д.

person Aniket Thakur    schedule 21.02.2018