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


Использование собственного многоплатформенного нацеливания в Visual Studio для сборки старых проектов

Как правило, при установке последней версии Visual Studio рекомендуется обновить проекты. Стоимость обновления проектов и кода часто превышает преимущества новой интегрированной среды разработки, компилятора, библиотек и инструментов. Однако мы знаем, что некоторые проекты обновить не удастся. У вас могут быть двоичные файлы, привязанные к старым библиотекам или платформам, которые по причинам обслуживания невозможно обновить. В коде могут использоваться нестандартные языковые конструкции, которые могут перестать работать при переходе на более новую версию компилятора. Код может полагаться на сторонние библиотеки, скомпилированные для определенной версии Microsoft C++ (MSVC). Кроме того, вы можете создавать библиотеки для других пользователей, предназначенных для конкретной более старой версии MSVC.

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

  • Новые возможности рефакторинга C++ и функции редактора
  • Новое окно отладчика "Средства диагностики" и окно "Список ошибок"
  • Переработанные точки останова, окно исключений и новые советы для повышения производительности
  • Новые средства навигации и поиска в коде
  • Новые быстрые исправления C++

Можно также работать с проектами Visual Studio 2008, но их нельзя использовать без изменений. Дополнительные сведения см. в разделе инструкций по Visual Studio 2008.

Последние версии Visual Studio поддерживают собственное многоплатформенное нацеливание и совместимость проектов. Базовая поддержка нескольких платформ в последней версии интегрированной среды разработки позволяет пользоваться средствами сборки, установленными предыдущими версиями Visual Studio. Циклическая обработка также является преимуществом последней версии IDE, которое заключается в загрузке проектов, созданных в предыдущей версии, без внесения изменений в проект. Установив последнюю версию Visual Studio параллельно с существующей версией, вы можете использовать новую версию IDE для сборки проектов, обращаясь к компилятору и инструментам из предыдущих версий. Другие участники команды могут продолжать использовать проекты в старой версии Visual Studio.

При использовании более старой версии средств сборки можно воспользоваться преимуществами многих последних функций интегрированной среды разработки, но не последних достижений компилятора C++, библиотек и средств сборки. Например, вы не сможете использовать новые улучшения соответствия языка, новые функции отладки и анализа кода или получить более быструю пропускную способность сборки последних средств сборки. Существуют также некоторые функции интегрированной среды разработки, несовместимые со старыми инструментами сборки. Например, сведения о типе могут отсутствовать в профилировщике памяти, а рефакторинг операции Convert to Raw string literals создает соответствующий стандарту C++11 код, который не будет компилироваться при использовании инструментов сборки Visual Studio 2012 или более ранних версий.

Использование встроенных возможностей многоцелевой разработки в Visual Studio 2026

Visual Studio 2026 включает в себя новый помощник по настройке. Вы можете загрузить существующее решение и в обозревателе решений выбрать решение Retarget , чтобы открыть помощника. С помощью помощника можно установить отсутствующие средства сборки C++ (компоненты MSVC и пакеты SDK для Windows), совместимые с загружаемыми проектами, включая средства, первоначально предоставленные более старыми версиями Visual Studio. Это позволяет продолжать работать с существующими проектами, не теряя совместимость с предыдущей версией Visual Studio. Позже, когда вы будете готовы к полному обновлению, вы можете использовать помощник для перенацеления этих проектов на последнюю версию интегрированной среды разработки.

Использование многоплатформенности в Visual Studio 2010-2022

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

Visual Studio будет постоянно выводить запрос на обновление проекта. Чтобы не видеть диалоговое окно обновления при каждой загрузке проекта, можно определить следующее свойство в проектах или в .props импортируемых файлах .targets :

<VCProjectUpgraderObjectName>NoUpgrade</VCProjectUpgraderObjectName>

Если необходимо обновить проекты, это свойство следует удалить.

Если вы решили не выполнять обновление, Visual Studio не внесет никаких изменений в файлы решения или проекта. При сборке проекта созданные двоичные файлы полностью совместимы с созданными с более старой версией Visual Studio, так как Visual Studio использует тот же компилятор C++ и связывает те же библиотеки, с которыми поставляется более старая интегрированная среда разработки. Кроме того, поэтому диалоговое окно обновления предупреждает о том, что при нажатии кнопки "Отмена" вы будете устанавливать старую версию Visual Studio.

Инструкции по Visual Studio 2008

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

Сначала в дополнение к текущей версии Visual Studio необходимо установить Visual Studio 2010 на одном компьютере с Visual Studio 2008. Скрипты MSBuild, которые требуются для проектов Visual Studio 2008, может установить только Visual Studio 2010.

Затем нужно обновить решение и проекты Visual Studio 2008 до текущей версии Visual Studio. Перед обновлением рекомендуется создать резервную копию файлов проектов и решений. Чтобы начать процесс обновления, откройте решение в текущей версии Visual Studio. При выводе запроса на обновление просмотрите сведения и нажмите кнопку ОК, чтобы запустить обновление. Если решение имеет несколько проектов, необходимо обновить каждый проект. Мастер создает файлы .vcxproj проекта параллельно с существующими .vcproj файлами. Если у вас также есть копия исходного .sln файла, обновление не влияет на существующие проекты Visual Studio 2008.

Примечание.

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

Если по завершении обновления в журнале ошибок появятся ошибки или предупреждения по проектам, внимательно изучите их. Преобразование из VCBuild в MSBuild может привести к возникновению проблем. Вы должны понимать и уметь применять все элементы действий, приведенные в отчете. Дополнительные сведения о отчете журнала обновления и проблемах, которые могут возникнуть при преобразовании VCBuild в MSBuild, см. в записи блога c++ Native Multi-Targeting.

Когда обновление завершится, и вы исправили все проблемы в файле журнала, решение теперь предназначено для последних средств сборки. В качестве последнего шага измените свойства каждого проекта в решении, чтобы использовать средства сборки Visual Studio 2008. Загрузите решение в текущей версии Visual Studio. Для каждого проекта в решении откройте диалоговое окно Страницы свойств. Для этого щелкните правой кнопкой мыши проект в обозревателе решений, а затем выберите пункт Свойства. В диалоговом окне Страницы свойств измените значение Конфигурация на Все конфигурации. В разделе Свойства конфигурации выберите Общие, а затем измените Набор инструментов платформы на Visual Studio 2008 (v90).

После этого изменения библиотеки и компилятор Visual Studio 2008 будут использоваться для создания двоичных файлов проекта при сборке решения в текущей версии Visual Studio.

Установка старых средств сборки Visual Studio

Возможно, у вас есть старый проект Visual Studio C++, который не удается обновить. Чтобы создать его, вам потребуется версия средств сборки, соответствующая проекту. Чтобы получить средства сборки, можно установить бесплатное издание нужной вам версии Visual Studio Community или Express. Начиная с версии Visual Studio 2008, в каждой последующей версии можно установить компилятор, библиотеки и другие средства сборки, необходимые для целевой версии на текущей версии Visual Studio. В Центре загрузки Майкрософт найдите и скачайте конкретную версию Visual Studio. Убедитесь, что во время установки выбраны параметры установки C++. После завершения установки запустите эту версию Visual Studio, чтобы установить обновления. Также проверьте наличие необходимых изменений в Центре обновления Windows. Этот процесс проверки обновлений может потребоваться повторить несколько раз для получения каждого обновления.

Доступные для скачивания версии можно найти на странице скачивания старых версий Visual Studio.

При установке этих продуктов раскрывающийся список свойств msVC Build Tools Version в диалоговом окне "Страницы свойств " автоматически обновляется, чтобы отобразить доступные версии средств сборки. В некоторых случаях также могут быть новые варианты для свойства Platform Toolset . Теперь можно использовать последнюю версию Visual Studio для создания проектов, использующих старую версию средств сборки: преобразование или обновление не требуется.

См. также

Обновление проектов с более ранних версий Microsoft C++
Улучшения соответствия C++ в Visual Studio