Обновление проектов C++ с более ранних версий Visual Studio

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

Если выбрать "Нет", проект не обновляется. Для проектов, созданных в Visual Studio 2010 и более поздних версий, можно по-прежнему использовать проект в более новой версии Visual Studio. Просто задайте свойства проекта, чтобы продолжить использовать старый набор инструментов. Если вы оставляете старую версию Visual Studio на компьютере, его набор инструментов доступен в более поздних версиях. Например, если проект должен продолжать работать в Windows XP, можно обновить до Visual Studio 2019. Затем вы указываете набор инструментов как v141_xp или более ранних версий в свойствах проекта. Дополнительные сведения см. в разделе Использование собственного многоплатформенного нацеливания в Visual Studio для сборки старых проектов.

Если выбрать "Да", проект обновляется на месте. Его нельзя преобразовать обратно в более раннюю версию. В сценариях обновления рекомендуется создать резервную копию существующих файлов проекта и решения.

Примечание.

Visual Studio 2022 не рекомендуется поддерживать обновление типов проектов, имеющих .dsw или .dsp расширения. Для обновления этих проектов можно использовать более раннюю версию Visual Studio, например Visual Studio 2019, а затем обновить их в Visual Studio 2022 для использования последних средств и функций Visual Studio.

Обновление отчетов

При обновлении проекта вы получите отчет об обновлении. Отчет также сохраняется в папке проекта как UpgradeLog.htm. В отчете об обновлении показано, какие проблемы были обнаружены во время преобразования. В нем перечислены некоторые сведения о внесенных изменениях, в том числе:

  • Свойства проекта.

  • Включите файлы.

  • Код, который больше не компилируется чисто из-за улучшений соответствия компилятора или изменений в стандарте.

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

  • Код, который больше не компилируется из-за изменений в API, таких как переименованные API, измененные подписи функций или устаревшие функции.

  • Код, который больше не компилируется из-за изменений в диагностика, например предупреждение становится ошибкой

  • Ошибки компоновщика из-за измененных библиотек, особенно при использовании /NODEFAULTLIB.

  • Ошибки среды выполнения или непредвиденные результаты из-за изменений поведения.

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

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

  1. Задайте набор инструментов платформы, стандарт языка C++ и версию пакета SDK для Windows (если применимо) для предпочитаемых версий. (Общие свойства конфигурации свойств>>проекта)>

  2. Если у вас много ошибок, вы можете временно отключить некоторые параметры при их исправлении. Чтобы отключить /permissive- этот параметр, используйте свойства конфигурации свойств>>проекта>C/C++>Language. Чтобы отключить параметр анализа кода, используйте анализ свойств>>конфигурации проекта.>

  3. Убедитесь в наличии всех зависимостей и правильности путей включения или расположений библиотеки. (Каталоги конфигурации свойств>>проекта>VC++)

  4. Выявление и исправление ошибок, вызванных ссылками на API, которые больше не существуют.

  5. Исправьте все оставшиеся ошибки, которые препятствуют компиляции. Общие сведения о потенциальных проблемах обновления для устранения распространенных ошибок.

  6. Включите и исправьте /permissive- новые ошибки, вызванные несоответствующим кодом, ранее скомпилированному в MSVC.

  7. Включите анализ кода для выявления потенциальных проблем или устаревших шаблонов кодирования, которые больше не считаются приемлемыми. Если анализ кода помечает множество ошибок, вы можете отключить некоторые предупреждения, чтобы сосредоточиться на наиболее важных. Интегрированная среда разработки может помочь в быстрых исправлениях для некоторых видов проблем.

  8. Рассмотрите другие возможности модернизации кода. Например, замените пользовательские структуры и алгоритмы данных на стандартные библиотеки C++ или библиотеку с открытым кодом. Используя стандартные функции, вы упрощаете обслуживание кода другими пользователями. Вы можете быть уверены, что этот код был хорошо протестирован и проверен многими экспертами по комитету по стандартам и более широкому сообществу C++.

Для устранения ошибок можно найти решения или отправить вопрос в Microsoft Learn Q&A. Для проблем с компилятором и инструментами C++ воспользуйтесь веб-сайтом Сообщество разработчиков C++.

В этом разделе

Общие сведения о возможных проблемах, возникающих при обновлении
Обновление кода для универсальной среды выполнения
Обновление WINVER и _WIN32_WINNT
Исправление зависимостей от внутренних компонентов библиотеки
Проблемы при миграции с плавающей запятой
Функции C++ устарели в Visual Studio
VCBuild и MSBuild
Библиотеки 3-стороннего порта

См. также

Новые возможности C++ в Visual Studio
Журнал изменений Visual C++ 2003–2015
Нестандартное поведение
Перенос приложений данных