Поделиться через


VCBuild и MSBuild: создание системных изменений в Visual Studio 2010

Система MSBuild для проектов C++ появилась в Visual Studio 2010. В Visual Studio 2008 и более ранних выпусках использовалась система VCBuild. Некоторые типы файлов и понятия, зависящие от VCBuild, не существуют или представлены по-разному в MSBuild. В этом документе описываются различия в текущей системе сборки. Чтобы преобразовать проект Visual Studio 2008 в MSBuild, необходимо использовать Visual Studio 2010. После преобразования проекта следует использовать последнюю версию Visual Studio для обновления до текущего набора инструментов интегрированной среды разработки и компилятора. Дополнительные сведения, включая получение Visual Studio 2010, см. в инструкциях по Visual Studio 2008.

В следующих разделах перечислены изменения из VCBuild в MSBuild. Если в проекте VCBuild есть пользовательские правила сборки или макросы, которые не распознаны MSBuild, см. статью "Проекты Visual Studio — C++ ", чтобы узнать, как перевести эти инструкции в систему MSBuild. Начальное преобразование из VCBuild в MSBuild — это всего лишь промежуточный шаг. Не обязательно получить файл проекта полностью правильно или получить программу для компиляции без ошибок. Вы используете только Visual Studio 2010 для преобразования проекта в формат MSBuild, чтобы получить проект, работающий в последней версии Visual Studio.

Вместо VCPROJ теперь используется VCXPROJ

Файлы проекта больше не имеют расширение имени файла VCPROJ. Visual Studio 2010 автоматически преобразует файлы проекта, созданные более ранним выпуском Visual C++ в формат MSBuild, который использует расширение .vcxproj для файлов проекта.

VSPROPS заменен на PROPS

В Visual Studio 2008 и более ранних версиях лист свойств проекта — это XML-файл с расширением vsprops-файла. Страница свойств проекта позволяет указывать параметры для средств сборки, например, параметры компилятора или компоновщика, и создавать пользовательские макросы. В MSBuild расширение имени файла для листа свойств проекта — props.

Пользовательские правила сборки и файлы правил .rules

В Visual Studio 2008 и более ранних версиях файл правила — это XML-файл с расширением имени файла .rules. Файл правил позволяет определять настраиваемые правила сборки и внедрять их в процесс сборки проекта Visual Studio C++. Настраиваемое правило сборки, которое может быть связано с одним или несколькими расширениями файлов, позволяет передавать входные файлы в средство, которое создает один или несколько выходных файлов.

В системе MSBuild пользовательские правила сборки представлены тремя типами файлов, .xml, props и .targets, а не файлом правил. Когда файл правил, созданный с помощью более ранней версии Visual C++, переносится в Visual Studio 2010, эквивалентные .xml, props и .targets-файлы создаются и хранятся в проекте вместе с исходным файлом правил .rules.

Внимание

В Visual Studio 2010 интегрированная среда разработки не поддерживает создание новых правил. По этой причине проще всего использовать файл правил из проекта, созданного с помощью более ранней версии Visual C++ для переноса проекта в Visual Studio 2010.

Макросы наследования

В Visual Studio 2008 и более ранних версиях макрос $(Inherit) указывает порядок, в котором унаследованные свойства отображаются в командной строке, созданной системой сборки проекта. Макрос $(NoInherit) указывает, что нужно пропускать все вхождения $(Inherit) и не наследовать свойства, которые наследовались бы в противном случае. Например, по умолчанию макрос $(Inherit) добавляет к командной строке файлы, указанные с помощью параметра компилятора /I (дополнительные каталоги включаемых файлов).

В Visual Studio 2010 наследование поддерживается путем указания значения свойства в качестве объединения одного или нескольких литеральных значений и макросов свойств. Макросы $(Inherit) и $(NoInherit) не поддерживаются.

В следующем примере список с разделением точкой с запятой назначается свойству на странице свойств. Список состоит из объединения литерала значений> и значения MyProperty свойства, доступ к которому осуществляется с помощью нотации макросов , $(MyProperty).<

Property=<value>;$(MyProperty)

файлы .vcxproj.user

Файл пользователя (VCXPROJ.USER) хранит свойства конкретного пользователя, например, параметры отладки и развертывания. Файл vcxproj.user применяется ко всем проектам для конкретного пользователя.

файл .vcxproj.filters

Если Обозреватель решений используется для добавления файла в проект, файл фильтров (.vcxproj.filters) определяет, где в представлении дерева Обозреватель решений добавляется файл на основе расширения имени файла.

Параметры каталогов VC++

Параметры каталогов Visual C++ указываются на странице свойств каталогов VC ++. В Visual Studio 2008 и более ранних версиях параметры каталогов применяются для каждого пользователя, а список исключенных каталогов указывается в файле sysincl.dat .

Невозможно изменить параметры каталогов VC++ при запуске devenv/resetsettings в командной строке. Также нельзя изменить параметры в меню Сервис, Импорт и экспорт параметров, Сбросить все параметры.

Чтобы перенести параметры каталогов VC++ из vssettings-файла , созданного ранее выпуском Visual Studio:

  1. Откройте меню "Сервис", нажмите кнопку "Импорт и экспорт параметров"
  2. Выбор параметров выбранной среды импорта
  3. Следуйте указаниям мастера.

См. также

MSBuild в командной строке — C++