Upgrade projektů C++ ze starších verzí sady Visual Studio

Pokud chcete upgradovat projekt vytvořený ve starší verzi sady Visual Studio, stačí projekt otevřít v nejnovější verzi sady Visual Studio. Visual Studio nabízí upgrade projektu na aktuální schéma.

Pokud zvolíte Ne, projekt se neupgraduje. U projektů vytvořených v sadě Visual Studio 2010 a novějších můžete projekt dál používat v novější verzi sady Visual Studio. Stačí nastavit vlastnosti projektu tak, aby pokračovaly v cílení na starší sadu nástrojů. Pokud necháte starší verzi sady Visual Studio na počítači, bude její sada nástrojů dostupná v novějších verzích. Pokud například váš projekt musí běžet i ve Windows XP, můžete upgradovat na Visual Studio 2019. Sadu nástrojů pak zadáte jako v141_xp nebo starší ve vlastnostech projektu. Další informace najdete v tématu Použití nativního cílení na více verzí v sadě Visual Studio k sestavení starých projektů.

Pokud zvolíte Ano, projekt se upgraduje. Nedá se převést zpět na starší verzi. V scénářích upgradu je proto vhodné vytvořit záložní kopii existujících souborů projektu a řešení.

Poznámka:

Visual Studio 2022 má zastaralou podporu upgradu typů projektů, které mají .dsw nebo .dsp mají rozšíření. K upgradu těchto projektů můžete použít starší verzi sady Visual Studio, například Visual Studio 2019, a pak je upgradovat v sadě Visual Studio 2022, aby používaly nejnovější nástroje a funkce sady Visual Studio.

Upgrade sestav

Při upgradu projektu získáte sestavu upgradu. Sestava se také uloží do složky projektu jako UpgradeLog.htm. Sestava upgradu zobrazuje souhrn problémů nalezených během převodu. Obsahuje několik informací o provedených změnách, mezi které patří:

  • Vlastnosti projektu

  • Zahrnout soubory.

  • Kód, který se už nekompiluje čistě kvůli vylepšením shody kompilátoru nebo změnám ve standardu.

  • Kód, který spoléhá na funkce sady Visual Studio nebo Windows, které už nejsou k dispozici. Nebo soubory hlaviček, které nejsou zahrnuty do výchozí instalace sady Visual Studio, nebo byly odebrány z produktu.

  • Kód, který se už nekompiluje kvůli změnám rozhraní API, jako jsou přejmenovaná rozhraní API, změněné podpisy funkcí nebo zastaralé funkce.

  • Kód, který se už nekompiluje kvůli změnám v diagnostice, jako je například upozornění, že se stala chybou

  • Chyby linkeru kvůli změněné knihovně, zejména při použití /NODEFAULTLIB.

  • Chyby za běhu nebo neočekávané výsledky kvůli změnám chování

  • Chyby, které byly zavedeny v nástrojích. Pokud zjistíte problém, nahlaste ho týmu Visual C++ prostřednictvím běžných kanálů podpory nebo pomocí stránky komunity vývojářů v sadě Visual Studio C++.

Některé upgradované projekty a řešení je možné úspěšně sestavit bez úprav. Většina projektů ale pravděpodobně bude vyžadovat změny nastavení projektu i zdrojového kódu. Neexistuje žádný správný způsob, jak tyto problémy vyřešit, ale doporučujeme použít fázovaný přístup. Než začnete, projděte si přehled potenciálních problémů s upgradem, kde najdete další informace o mnoha typech běžných chyb.

  1. Nastavte sadu nástrojů platformy, standard jazyka C++ a verzi sady Windows SDK (pokud je k dispozici) na upřednostňované verze. (Obecné vlastnosti konfigurace vlastností>>projektu)>

  2. Pokud máte velké množství chyb, můžete během jejich opravy dočasně vypnout některé možnosti. Pokud chcete tuto možnost vypnout/permissive-, použijte vlastnosti konfigurace vlastností>projektu>>C/C++>Language. Pokud chcete vypnout možnost analýzy kódu, použijte analýzu kódu vlastností>konfigurace projektu.>>

  3. Ujistěte se, že jsou přítomny všechny závislosti a zda jsou správné cesty k zahrnutí nebo umístění knihovny. (Adresáře VC++ vlastnosti konfigurace vlastností>>projektu)>

  4. Identifikujte a opravte chyby způsobené odkazy na rozhraní API, která již neexistují.

  5. Opravte všechny zbývající chyby, které brání kompilaci. Informace o možných problémech s upgradem najdete v tématu Přehled oprav běžných chyb.

  6. Zapněte /permissive- a opravte všechny nové chyby způsobené nevyhovujícím kódem, který byl dříve zkompilován v MSVC.

  7. Zapněte analýzu kódu a identifikujte potenciální problémy nebo zastaralé vzory kódování, které se už nepovažují za přijatelné. Pokud analýza kódu označí řadu chyb, můžete některá upozornění vypnout, abyste se nejprve zaměřili na ty nejdůležitější. Integrované vývojové prostředí (IDE) vám může pomoct s rychlými opravami některých typů problémů.

  8. Zvažte další příležitosti pro modernizaci kódu. Můžete například nahradit vlastní datové struktury a algoritmy pomocí standardní knihovny jazyka C++ nebo knihovny Boost open-source. Používáním standardních funkcí usnadníte ostatním správu kódu. Můžete si být jistí, že tento kód byl dobře otestován a zkontrolován mnoha odborníky na výbor standardů a širší komunitou C++.

V případě chyb, které se obtížně opravují, můžete vyhledat řešení nebo zadat dotaz na Q&A v Microsoft Learn. V případě problémů s kompilátorem a nástroji jazyka C++ zkuste web komunity vývojářů C++.

V této části

Přehled potenciálních problémů s upgradem
Upgrade kódu na Universal CRT
Aktualizace winveru a _WIN32_WINNT
Oprava závislostí u interních informací o knihovně
Problémy migrace s plovoucí desetinnou čárkou
Funkce C++ zastaralé v sadě Visual Studio
VCBuild vs. MSBuild
Přenos knihoven třetích stran

Viz také

Co je nového pro Visual C++ v sadě Visual Studio
Historie změn Visual C++ 2003–2015
Nestandardní chování
Přenos datových aplikací