Actualización de proyectos de C++ desde versiones anteriores de Visual Studio

Para actualizar un proyecto creado en una versión anterior de Visual Studio, simplemente abra el proyecto en la versión más reciente de Visual Studio. Visual Studio ofrece actualizar el proyecto al esquema actual.

Si selecciona No, el proyecto no se actualiza. En el caso de los proyectos creados en Visual Studio 2010 y versiones posteriores, puede seguir usando el proyecto en la versión más reciente de Visual Studio. Simplemente establezca las propiedades del proyecto para seguir teniendo como destino el conjunto de herramientas anterior. Si deja la versión anterior de Visual Studio en el equipo, su conjunto de herramientas está disponible en versiones posteriores. Por ejemplo, si el proyecto debe seguir ejecutándose en Windows XP, puede actualizar a Visual Studio 2019. Luego, especifique el conjunto de herramientas como v141_xp o versiones anteriores en las propiedades del proyecto. Para obtener más información, vea Use native multi-targeting in Visual Studio to build old projects (Usar compatibilidad nativa con múltiples versiones en Visual Studio para compilar proyectos antiguos).

Si selecciona , el proyecto se actualiza en local. No se puede convertir de nuevo a la versión anterior. En escenarios de actualización, este es el motivo por el que es recomendable realizar una copia de seguridad de los archivos de proyecto y de solución existentes.

Nota:

Visual Studio 2022 ha puesto en desuso la compatibilidad con la actualización de tipos de proyecto con extensiones .dsw o .dsp. Puede usar una versión anterior de Visual Studio, como Visual Studio 2019, para actualizar estos proyectos y luego actualizarlos en Visual Studio 2022 para usar las herramientas y características más recientes de Visual Studio.

Actualización de informes

Al actualizar un proyecto, se obtiene un informe de actualización. El informe se guarda en la carpeta del proyecto como UpgradeLog.htm. El informe de actualización muestra un resumen de los problemas detectados durante la conversión. Muestra alguna información sobre los cambios realizados, que incluye:

  • Propiedades del proyecto.

  • Archivos de inclusión.

  • Código que ya no se compila correctamente debido a mejoras en la conformidad del compilador o cambios en el estándar.

  • Código que se basa en características de Visual Studio o Windows que ya no están disponibles. O bien, archivos de encabezado que no están incluidos en una instalación predeterminada de Visual Studio o que se han quitado del producto.

  • Código que ya no se compila debido a cambios en las API, como API cuyo nombre se ha cambiado, signaturas de función modificadas o funciones en desuso.

  • Código que ya no se compila debido a cambios en los diagnósticos, como una advertencia que se convierte en un error

  • Errores del enlazador debidos a bibliotecas modificadas, especialmente cuando se usa /NODEFAULTLIB.

  • Errores en tiempo de ejecución o resultados inesperados debidos a cambios de comportamiento.

  • Errores incorporados en las herramientas. Si detecta un problema, comuníqueselo al equipo de Visual C++ por medio de los canales de soporte normales o mediante la página Developer Community de Visual Studio C++.

Algunos proyectos y soluciones actualizados se pueden compilar correctamente sin realizar modificaciones. Pero es posible que la mayoría de los proyectos requieran cambios en la configuración del proyecto y en el código fuente. No hay una única manera correcta de solucionar estos problemas, aunque se recomienda usar un enfoque por fases. Antes de empezar, revise Información general sobre posibles problemas de actualización para obtener más información sobre muchos tipos de errores comunes.

  1. Establezca la versión del Conjunto de herramientas de plataforma, Estándar de lenguaje C++ y Windows SDK (si procede) en la que prefiera. (Proyecto>Propiedades>Propiedades de configuración>General)

  2. Si tiene muchos errores, puede desactivar temporalmente algunas opciones mientras los corrige. Para desactivar la opción /permissive-, use Proyecto>Propiedades>Propiedades de configuración>C/C++>Lenguaje. Para desactivar la opción de análisis de código, use Proyecto>Propiedades>Propiedades de configuración>Code Analysis.

  3. Asegúrese de que todas las dependencias estén presentes y de que las rutas de acceso de inclusión o las ubicaciones de biblioteca sean correctas. (Proyecto>Propiedades>Propiedades de configuración>Directorios de VC++)

  4. Identifique y corrija los errores causados por referencias a API que ya no existen.

  5. Corrija los errores restantes que eviten la compilación. Vea Información general sobre posibles problemas de actualización para obtener correcciones de errores comunes.

  6. Vuelva a activar /permissive- y corrija los errores nuevos causados por código no conforme compilado anteriormente en MSVC.

  7. Active el análisis de código para identificar posibles problemas o patrones de codificación obsoletos que ya no se consideren aceptables. Si el análisis de código marca muchos errores, puede desactivar algunas de las advertencias para centrarse primero en las más importantes. El IDE puede ayudar con correcciones rápidas para algunos tipos de problemas.

  8. Considere otras oportunidades de modernizar el código. Por ejemplo, reemplace las estructuras de datos y los algoritmos personalizados por los de la biblioteca estándar de C++ o la biblioteca de código abierto Boost. Con las características estándar facilita que otros usuarios mantengan el código. Puede estar seguro de que este código ha sido probado y revisado exhaustivamente por muchos expertos del comité de estándares y la comunidad de C++.

Para solucionar errores difíciles de corregir, puede buscar soluciones o publicar una pregunta en Q&A de Microsoft Learn. Si tiene problemas con el compilador y las herramientas de C++, pruebe el sitio web Developer Community de C++.

En esta sección

Información general sobre posibles problemas de actualización
Actualizar código a CRT universal
Actualizar WINVER y _WIN32_WINNT
Corregir dependencias en los datos internos de biblioteca
Problemas de migración de punto flotante
Características de C++ en desuso en Visual Studio
VCBuild frente a MSBuild
Bibliotecas de terceros de puerto

Consulte también

Novedades de Visual C++ en Visual Studio
Historial de cambios en Visual C++ 2003-2015
Comportamiento no estándar
Aplicaciones de datos de puerto