Aggiornare progetti C++ da versioni precedenti di Visual Studio

Per aggiornare un progetto creato in una versione precedente di Visual Studio, è sufficiente aprire il progetto nella versione più recente di Visual Studio. Visual Studio offre di aggiornare il progetto allo schema corrente.

Se si sceglie No, il progetto non viene aggiornato. Per i progetti creati in Visual Studio 2010 e versioni successive, è comunque possibile usare il progetto nella versione più recente di Visual Studio. È sufficiente impostare le proprietà del progetto per continuare a usare il set di strumenti meno recente. Se si lascia la versione precedente di Visual Studio nel computer, il relativo set di strumenti è disponibile nelle versioni successive. Ad esempio, se il progetto deve continuare a essere eseguito in Windows XP, è possibile eseguire l'aggiornamento a Visual Studio 2019. Specificare quindi il set di strumenti come v141_xp o versioni precedenti nelle proprietà del progetto. Per altre informazioni, vedere Usare multitargeting nativo in Visual Studio per compilare progetti precedenti.

Se si sceglie , il progetto viene aggiornato sul posto. Non può essere riconvertita nella versione precedente. Negli scenari di aggiornamento è consigliabile creare una copia di backup dei file di progetto e di soluzione esistenti.

Nota

Visual Studio 2022 ha deprecato il supporto per l'aggiornamento dei tipi di progetto con .dsw estensioni o .dsp . È possibile usare una versione precedente di Visual Studio, ad esempio Visual Studio 2019, per aggiornarli e quindi aggiornarli in Visual Studio 2022 per usare gli strumenti e le funzionalità più recenti di Visual Studio.

Aggiornare i report

Quando si aggiorna un progetto, si ottiene un report di aggiornamento. Il report viene salvato anche nella cartella del progetto come UpgradeLog.htm. Il report di aggiornamento mostra un riepilogo dei problemi rilevati durante la conversione. Vengono elencate alcune informazioni sulle modifiche apportate, tra cui:

  • Proprietà del progetto.

  • Includi file.

  • Codice che non viene più compilato in modo pulito a causa di miglioramenti o modifiche della conformità del compilatore nello standard.

  • Codice che si basa sulle funzionalità di Visual Studio o Windows che non sono più disponibili. In alternativa, i file di intestazione che non sono inclusi in un'installazione predefinita di Visual Studio o sono stati rimossi dal prodotto.

  • Codice che non viene più compilato a causa di modifiche apportate alle API, ad esempio API rinominate, firme di funzioni modificate o funzioni deprecate.

  • Codice che non viene più compilato a causa di modifiche nella diagnostica, ad esempio un avviso che diventa un errore

  • Errori del linker a causa di librerie modificate, in particolare quando viene usato /NODEFAULTLIB.

  • Errori di runtime o risultati imprevisti a causa di modifiche del comportamento.

  • Errori introdotti negli strumenti. Se si verifica un problema, segnalarlo al team di Visual C++ tramite i normali canali di supporto o usando la pagina Della community per sviluppatori di Visual Studio C++.

Alcuni progetti e soluzioni aggiornati possono essere compilati correttamente senza modifiche. Tuttavia, la maggior parte dei progetti richiederà probabilmente modifiche alle impostazioni del progetto e al codice sorgente. Non esiste un unico modo corretto per risolvere questi problemi, ma è consigliabile usare un approccio in più fasi. Prima di iniziare, vedere Panoramica dei potenziali problemi di aggiornamento per altre informazioni su molti tipi di errori comuni.

  1. Impostare il set di strumenti della piattaforma, lo standard del linguaggio C++ e la versione di Windows SDK (se applicabile) sulle versioni preferite. (Generale proprietà>di configurazione delle proprietà> del progetto)>

  2. Se si verificano molti errori, è possibile disattivare temporaneamente alcune opzioni durante la correzione. Per disattivare l'opzione/permissive-, usare >Proprietà>progetto Proprietà>configurazione C/C++>Linguaggio. Per disattivare l'opzione di analisi del codice, usare l'analisi del codice delle proprietà di configurazione delle>proprietà>del progetto.>

  3. Assicurarsi che tutte le dipendenze siano presenti e che i percorsi delle librerie di inclusione siano corretti. (Directory di configurazione delle>proprietà>del progetto>VC++)

  4. Identificare e correggere gli errori causati dai riferimenti alle API che non esistono più.

  5. Correggere eventuali errori rimanenti che impediscono la compilazione. Vedere Panoramica dei potenziali problemi di aggiornamento per le correzioni per gli errori comuni.

  6. Riattivare /permissive- e correggere eventuali nuovi errori causati da codice non conforme compilato in precedenza in MSVC.

  7. Attivare l'analisi del codice per identificare potenziali problemi o modelli di codifica obsoleti che non sono più considerati accettabili. Se l'analisi del codice contrassegna molti errori, è possibile disattivare alcuni avvisi per concentrarsi prima sui più importanti. L'IDE può essere utile per risolvere rapidamente alcuni tipi di problemi.

  8. Prendere in considerazione altre opportunità per modernizzare il codice. Ad esempio, sostituire strutture di dati e algoritmi personalizzati con quelli della libreria standard C++ o la libreria open source Boost. L'uso delle funzionalità standard semplifica la gestione del codice da parte di altri utenti. È possibile assicurarsi che questo codice sia stato testato e esaminato correttamente da molti esperti del comitato standard e della community C++ più ampia.

Per gli errori difficili da correggere, è possibile cercare soluzioni o pubblicare una domanda in Domande e risposte di Microsoft Learn. Per problemi nel compilatore e negli strumenti C++, provare il sito Web C++ Developer Community .

In questa sezione

Panoramica dei potenziali problemi di aggiornamento
Aggiornare il codice a Universal CRT
Aggiornare WINVER e _WIN32_WINNT
Correggere le dipendenze da elementi interni delle librerie
Problemi relativi alla migrazione dei valori a virgola mobile
Funzionalità C++ deprecate in Visual Studio
VCBuild e MSBuild
Librerie di terze parti della porta

Vedi anche

Novità di Visual C++ in Visual Studio
Cronologia delle modifiche di Visual C++ dal 2003 al 2015
Comportamento non standard
Port data applications (Applicazioni dati porta)