Подтвердить что ты не робот

Что такое файлы .sln и .vcproj, и что они содержат?

Я новичок в мире Visual Studio. Может кто-нибудь объяснить, что эти два файла содержат? Я знаю, что один из них содержит информацию о проекте, но как насчет другой?

4b9b3361

Ответ 1

Файл проекта (.vcproj/.vcxproj) содержит параметры компиляции кода в DLL или двоичный файл или что-то еще, что компоновщик может собрать в одном устройстве. Файл проекта представляет собой всего лишь XML файл, содержащий параметры компилятора, настройки компоновщика и описание файлов, которые вы хотите скомпилировать.

Файл решения представляет собой текстовый файл, объединяющий несколько файлов проекта.

Итак, если вы думаете об этом, как о дереве, то у вас есть хорошая ментальная картина его:

.sln
   .vcproj
      .h
      .h
      .cpp
      .cpp
   .vcxproj
      .h
      .h
      .cpp
      .cpp
   .csproj
      .cs

Ответ 2

Файлы решений и файлы проекта находятся в формате XML и описывают части ваших проектов и их отношения, конфигурации и т.д. Фактически, оба этих файла - это просто скрипты MSBuild (которые запускаются через MSBuild, когда, как вы догадались, создаете свой проект.)

Это означает, что их легко манипулировать вручную, если это необходимо (хотя это должен быть редкий случай), а также позволяет добавлять пользовательские части в конструкцию script, создавать собственные скрипты сборки для MSBuild, которые могут включать файл решения, а также просто сценарии автоматической сборки, которые передают файл решения (или проект) в MSBuild, скажем, при проверке контроля версий.

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

Как отметил Ханс Пассант, есть исключение: файлы для проектов на С++ pre-VS2010 не являются файлами MSBuild для XML, а вместо этого являются задокументированные Microsoft на MSDN.

Ответ 3

Короче: один для решения, а другой для проекта, а решение может содержать несколько проектов.

Ответ 4

Файл .vcproj содержит информацию о том, КАК скомпилировать источник для цели (в основном, исполняемый файл). Во многих случаях крайне важно иметь файл проекта для успешной компиляции, поэтому не удаляйте его. Он сопоставим с .dsp файлом (Visual Studio 6), файлом .prj(компиляторы Borland) или Makefile (Unix, компиляторы GNU) и содержит пути и параметры командной строки компилятора/компоновщика.

Файл .sln представляет собой просто набор из нескольких файлов .vcproj. Поскольку Visual Studio может автоматически создать один, если он отсутствует, нет необходимости хранить его для распространения или архивирования. Это преемник файла .dsw(Visual Studio 6). Его имя "файл решения" ИМХО вводит в заблуждение.

Ответ 5

Visual Studio позволяет несколько проектов в решении. Данные, какие проекты находятся в решении, находятся в файле sln (solution).