Partager via


Mettre à niveau des projets C++ à partir de versions antérieures de Visual Studio

Pour mettre à niveau un projet créé dans une version antérieure de Visual Studio, ouvrez le projet dans la dernière version de Visual Studio. Si vous utilisez toujours une version antérieure de Visual Studio côte à côte, vous pouvez choisir de ne pas mettre à niveau vos projets tant que vous n’êtes pas prêt à maintenir la compatibilité avec les deux versions.

Dans Visual Studio 2026, cette expérience est améliorée avec un Assistant Configuration. L’Assistant Configuration propose d’installer des outils manquants à l’aide du programme d’installation de Visual Studio et de rester sur une version antérieure ou de recibler vos projets vers la dernière version. Vous pouvez ouvrir l’Assistant Configuration dans l’Explorateur de solutions en cliquant avec le bouton droit sur votre solution et en sélectionnant Retarget solution.

Lorsque l’Assistant Configuration s’ouvre, choisissez une action pour chaque cible ou sélectionnez Reciblage pour définir tous les projets en même temps. Sélectionnez Appliquer pour terminer la mise à niveau en place. Une fois vos projets retargetés, ils ne peuvent pas être convertis en version antérieure. Il est recommandé d’effectuer une copie de sauvegarde des fichiers de projet et de solution existants avant de les mettre à niveau.

Remarque

Visual Studio 2022 et versions ultérieures ont cessé de prendre en charge la mise à niveau des types de projet qui ont des extensions .dsw ou .dsp. Vous pouvez utiliser une version antérieure de Visual Studio, telle que Visual Studio 2019, pour mettre à niveau ces projets, puis les mettre à niveau dans Visual Studio 2022 ou version ultérieure pour utiliser les outils et fonctionnalités les plus récents de Visual Studio.

Mettre à niveau des rapports

Lorsque vous mettez à niveau un projet, vous obtenez un rapport de mise à niveau. Le rapport est également enregistré dans votre dossier de projet sous forme de UpgradeLog.htm. Le rapport de mise à niveau affiche un résumé des problèmes détectés lors de la conversion. Il répertorie quelques informations sur les modifications qui ont été apportées, notamment :

  • Propriétés du projet.

  • Inclure des fichiers.

  • Code qui ne se compile plus correctement en raison des améliorations de conformité du compilateur ou des modifications apportées à la norme.

  • Code qui s’appuie sur des fonctionnalités Visual Studio ou Windows qui ne sont plus disponibles. Ou, les fichiers d’en-tête qui ne sont pas inclus dans une installation par défaut de Visual Studio ou qui ont été supprimés du produit.

  • Code qui ne se compile plus en raison de modifications apportées aux API telles que les API renommées, les signatures de fonction modifiées ou les fonctions déconseillées.

  • Code qui ne se compile plus en raison des modifications apportées aux diagnostics, par exemple un avertissement devenant une erreur

  • Erreurs de l’éditeur de liens en raison des bibliothèques qui ont été modifiées, en particulier lorsque /NODEFAULTLIB est utilisé.

  • Erreurs d’exécution ou résultats inattendus en raison des modifications de comportement.

  • Erreurs introduites dans les outils. Si vous rencontrez un problème, signalez-le à l’équipe Microsoft C++ via vos canaux de support normaux ou à l’aide de la page Communauté des développeurs Visual Studio C++ .

Certains projets et solutions mis à niveau peuvent être générés avec succès sans modification. Toutefois, la plupart des projets nécessitent probablement des modifications apportées aux paramètres du projet et à votre code source. Il n’existe aucun moyen correct de résoudre ces problèmes, mais nous vous recommandons d’utiliser une approche par phases. Avant de commencer, consultez vue d’ensemble des problèmes de mise à niveau potentiels pour plus d’informations sur de nombreux types d’erreurs courantes.

  1. Définissez l’ensemble d’outils de plateforme, la norme du langage C++ et la version du Kit de développement logiciel (SDK) Windows (le cas échéant) sur les versions préférées. (>

  2. Si vous avez beaucoup d’erreurs, vous pouvez désactiver temporairement certaines options pendant que vous les corrigez. Pour désactiver l’option, utilisez /permissive- Pour désactiver l’option d’analyse du code, utilisez Project>>

  3. Vérifiez que toutes les dépendances sont présentes et que les chemins d’accès ou les emplacements de bibliothèque sont corrects. (>

  4. Identifiez et corrigez les erreurs provoquées par des références aux API qui n’existent plus.

  5. Corrigez les erreurs restantes qui empêchent la compilation. Reportez-vous à Vue d’ensemble des problèmes de mise à niveau potentiels pour les correctifs pour les erreurs courantes.

  6. Réactivez /permissive- et corrigez les nouvelles erreurs provoquées par le code non conforme précédemment compilé dans MSVC.

  7. Activez l’analyse du code pour identifier les problèmes potentiels ou les modèles de codage obsolètes qui ne sont plus considérés comme acceptables. Si l’analyse du code signale de nombreuses erreurs, vous pouvez d’abord désactiver certains avertissements pour vous concentrer sur les plus importants. L’IDE peut vous aider à résoudre rapidement certains types de problèmes.

  8. Envisagez d’autres opportunités pour moderniser le code. Par exemple, remplacez les structures et algorithmes de données personnalisés par ceux de la bibliothèque standard C++ ou de la bibliothèque open source Boost. En utilisant des fonctionnalités standard, vous facilitez la gestion du code par d’autres utilisateurs. Vous pouvez être certain que ce code a été bien testé et examiné par de nombreux experts du comité des normes et de la communauté C++ plus large.

Pour les erreurs difficiles à corriger, vous pouvez rechercher des solutions ou publier une question sur microsoft Learn Q&A. Pour des problèmes dans le compilateur et les outils C++, essayez le site web de la Communauté des développeurs C++.

Contenu de cette section

Vue d’ensemble des problèmes de mise à niveau potentiels
Mettre à niveau votre code vers la bibliothèque Universal CRT
Mettre à jour WINVER et _WIN32_WINNT
Résoudre vos dépendances aux éléments internes de bibliothèque
Problèmes de migration de virgule flottante
Fonctionnalités C++ déconseillées dans Visual Studio
VCBuild et MSBuild
Bibliothèques tierces de port

Voir aussi

Nouveautés de Microsoft C++ dans Visual Studio
Historique des modifications de Visual C++ entre 2003 et 2015
Comportement non standard
Applications de données de port