Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Собственная система проектов Visual Studio основана на MSBuild. Платформа MSBuild определяет форматы файлов и правила сборки проектов любого типа. Она в значительной степени упрощает сборку для нескольких платформ и конфигураций. Вам будет полезно разобраться в ее работе. Это особенно важно, если потребуется определять пользовательские конфигурации чтобы создавать повторно используемые наборы свойств, которыми можно делиться и импортировать в несколько проектов.
Файл VCXPROJ, файлы PROPS и TARGETS
Свойства проекта хранятся в нескольких файлах. Некоторые из них находятся непосредственно в файле проекта .vcxproj. Другие свойства определяются в файлах .targets или .props, которые импортируются файлом проекта и содержат значения по умолчанию. Файлы проекта Visual Studio 2015 находятся в папке для конкретного региона, расположенной в базовом каталоге %ProgramFiles(x86)%\MSBuild\Microsoft.Cpp\v4.0\v140.
Свойства проекта хранятся в нескольких файлах. Некоторые из них находятся непосредственно в файле проекта .vcxproj. Другие свойства определяются в файлах .targets или .props, которые импортируются файлом проекта и содержат значения по умолчанию. Файлы проекта Visual Studio 2017 находятся в папке, зависящей от языка, в базовом каталоге %VSINSTALLDIR%Common7\IDE\VC\VCTargets\.
Свойства проекта хранятся в нескольких файлах. Некоторые из них находятся непосредственно в файле проекта .vcxproj. Другие свойства определяются в файлах .targets или .props, которые импортируются файлом проекта и содержат значения по умолчанию. Файлы проекта Visual Studio находятся в папке, соответствующей конкретной локали, в базовом каталоге %VSINSTALLDIR%\MSBuild\Microsoft\VC\<version>. Значение атрибута <version> зависит от версии Visual Studio. Это v160 для Visual Studio 2019.
Свойства также хранятся в любых пользовательских файлах .props, которые вы можете добавить в свой проект. Мы настоятельно рекомендуем НЕ ИЗМЕНЯТЬ эти файлы вручную. Если у вас нет четкого представления о работе MSBuild и строении файлов .vcxproj, используйте для изменения свойств, особенно участвующих в наследовании, страницы свойств в интегрированной среде разработки.
Как указано выше, одному свойству для некоторой конфигурации можно назначить разные значения в разных файлах. При сборке проекта модуль MSBuild оценивает файл проекта и все импортированные файлы в строго определенном порядке, который описывается ниже. По мере оценки каждого файла все значения свойств, определенные в этом файле, переопределяют существующие значения. Все неуказанные значения наследуются от файлов, оцененных ранее. При установке свойства с помощью страниц свойств важно также следить за тем, где именно вы это делаете. Если задать свойство X в файле .props, при том что для того же свойства задано значение Y в файле проекта, проект будет создан со свойством, имеющим значение Y. Если то же свойство имеет значение Z для элемента проекта, например файла .cpp, то модуль MSBuild использует значение Z.
Ниже представлено базовое дерево наследования.
Параметры по умолчанию из набора инструментов MSBuild CPP (файл
Microsoft.Cpp.Default.propsв базовом каталоге, который импортируется файлом.vcxproj)Листы свойств.
Файл
.vcxproj. (Этот файл может переопределять параметры по умолчанию и параметры страницы свойств.)Метаданные элементов.
Совет
Свойство, выделенное полужирным шрифтом на странице свойств, определяется в текущем контексте. Свойство обычного начертания наследуется.
Просмотр развернутого файла проекта со всеми импортированными значениями
Иногда полезно просмотреть развернутый файл, чтобы определить, как наследуется значение данного свойства. Для просмотра развернутой версии введите следующую команду в командной строке Visual Studio (Замените имена файлов-шаблонов на те, которые вы хотите использовать.)
msbuild /pp:temp.txtmyapp.vcxproj
Развернутые файлы проекта могут быть большими и трудными для понимания, если вы не знакомы с MSBuild. Ниже представлена основная структура файла проекта.
Основные свойства проекта, которые не представлены в интегрированной среде разработки.
Импорт файла
Microsoft.cpp.default.props, который определяет некоторые базовые, независимые от набора инструментов свойства.Глобальные свойства конфигурации (предоставляемые как свойства по умолчанию PlatformToolset и Project на странице Конфигурация > Общие). Эти свойства определяют, какой набор инструментов и встроенные свойства импортируются в
Microsoft.cpp.propsна следующем шаге.Импорт файла
Microsoft.cpp.props, который задает большинство значений проекта по умолчанию.Импорт всех страниц свойств, включая файлы
.user. Эти страницы свойств могут переопределить все значения, кроме свойств по умолчанию PlatformToolset и Project.Остальная часть свойств конфигурации проекта. Эти значения могут переопределять значения, заданные на страницах свойств.
Элементы (файлы) вместе с связанными с ними метаданными. Эти элементы всегда используются последними в правилах вычисления MSBuild, даже если находятся до других свойств и импортов.
Дополнительные сведения см. в разделе Свойства MSBuild.
Конфигурации сборки
Конфигурация — это просто произвольная группа свойств, которым назначено имя. Visual Studio предоставляет конфигурации Debug и Release. Каждая устанавливает различные свойства соответственно для отладочной или релизной сборки. Вы можете использовать Configuration Manager для определения настраиваемых конфигураций. Это удобный способ группировки свойств для конкретного типа сборки.
Чтобы лучше разобраться в конфигурациях сборки, откройте диспетчер свойств. Его можно открыть, выбрав Вид > Диспетчер свойств или Вид > Другие окна > Диспетчер свойств, в зависимости от ваших настроек. В диспетчере свойств есть узлы для каждой пары конфигурации и платформы в проекте. В каждом из этих узлов находятся узлы для страниц свойств (файлы .props), позволяющие задать некоторые свойства для этой конфигурации.
Например, можно перейти в область "Общие" на страницах свойств. Измените значение свойства "Кодировка" на "Не задано" вместо "Использовать Юникод" и нажмите кнопку ОК. В диспетчере свойств больше не отображается страница свойств Поддержка Юникода. Она удаляется для текущей конфигурации, но сохраняется для других.
Дополнительные сведения о диспетчере и страницах свойств см. в статье Совместное или повторное использование параметров проекта Visual Studio C++.
Совет
Файл .user является устаревшим. Мы рекомендуем удалить его, чтобы обеспечить правильную группировку свойств по конфигурации и платформе.