Uaktualnianie projektów C++ z wcześniejszych wersji programu Visual Studio

Aby uaktualnić projekt utworzony we wcześniejszej wersji programu Visual Studio, wystarczy otworzyć projekt w najnowszej wersji programu Visual Studio. Program Visual Studio oferuje uaktualnienie projektu do bieżącego schematu.

Jeśli wybierzesz pozycję Nie, projekt nie zostanie uaktualniony. W przypadku projektów utworzonych w programie Visual Studio 2010 lub nowszym nadal można używać projektu w nowszej wersji programu Visual Studio. Wystarczy ustawić właściwości projektu, aby nadal kierować do starszego zestawu narzędzi. Jeśli opuścisz starszą wersję programu Visual Studio na komputerze, jego zestaw narzędzi będzie dostępny w nowszych wersjach. Jeśli na przykład projekt musi nadal działać w systemie Windows XP, możesz przeprowadzić uaktualnienie do programu Visual Studio 2019. Następnie określ zestaw narzędzi jako v141_xp lub wcześniej we właściwościach projektu. Aby uzyskać więcej informacji, zobacz Używanie natywnego wielowersyjności w programie Visual Studio do kompilowania starych projektów.

Jeśli wybierzesz pozycję Tak, projekt zostanie uaktualniony. Nie można przekonwertować go z powrotem na starszą wersję. W scenariuszach uaktualniania warto utworzyć kopię zapasową istniejących plików projektu i rozwiązania.

Uwaga

Program Visual Studio 2022 ma przestarzałą obsługę uaktualniania typów projektów, które mają .dsw.dsp lub rozszerzenia. Aby uaktualnić te projekty, możesz użyć starszej wersji programu Visual Studio, takiej jak Visual Studio 2019, a następnie uaktualnić je w programie Visual Studio 2022, aby korzystać z najnowszych narzędzi i funkcji programu Visual Studio.

Uaktualnianie raportów

Podczas uaktualniania projektu otrzymasz raport uaktualniania. Raport jest również zapisywany w folderze projektu jako UpgradeLog.htm. Raport uaktualniania przedstawia podsumowanie problemów znalezionych podczas konwersji. Zawiera on kilka informacji o wprowadzonych zmianach, w tym:

  • Właściwości projektu.

  • Uwzględnij pliki.

  • Kod, który nie jest już kompilowany w sposób czysty z powodu ulepszeń zgodności kompilatora lub zmian w standardzie.

  • Kod oparty na funkcjach programu Visual Studio lub Windows, które nie są już dostępne. Lub pliki nagłówków, które nie są uwzględnione w domyślnej instalacji programu Visual Studio lub zostały usunięte z produktu.

  • Kod, który nie jest już kompilowany z powodu zmian w interfejsach API, takich jak zmienione interfejsy API, zmienione podpisy funkcji lub przestarzałe funkcje.

  • Kod, który nie jest już kompilowany z powodu zmian w diagnostyce, takich jak ostrzeżenie staje się błędem

  • Błędy konsolidatora z powodu bibliotek, które zostały zmienione, szczególnie w przypadku użycia /NODEFAULTLIB.

  • Błędy środowiska uruchomieniowego lub nieoczekiwane wyniki ze względu na zmiany zachowania.

  • Błędy wprowadzone w narzędziach. Jeśli znajdziesz problem, zgłoś go zespołowi Visual C++ za pośrednictwem normalnych kanałów pomocy technicznej lub na stronie Społeczności deweloperów programu Visual Studio C++.

Niektóre uaktualnione projekty i rozwiązania można pomyślnie skompilować bez modyfikacji. Jednak większość projektów prawdopodobnie będzie wymagać zmian zarówno ustawień projektu, jak i kodu źródłowego. Nie ma jednego poprawnego sposobu rozwiązywania tych problemów, ale zalecamy użycie podejścia etapowego. Przed rozpoczęciem zapoznaj się z omówieniem potencjalnych problemów z uaktualnieniem, aby uzyskać więcej informacji na temat wielu rodzajów typowych błędów.

  1. Ustaw zestaw narzędzi platformy, język C++ Standard i wersję zestawu Windows SDK (jeśli ma to zastosowanie) do preferowanych wersji. (Właściwości konfiguracji właściwości>>projektu>— ogólne)

  2. Jeśli masz wiele błędów, możesz tymczasowo wyłączyć niektóre opcje podczas ich naprawiania. Aby wyłączyć /permissive- tę opcję, użyj właściwości konfiguracji właściwości>>projektu>C/C++>Language. Aby wyłączyć opcję analizy kodu, użyj właściwości konfiguracji właściwości>>projektu>Analiza kodu.

  3. Upewnij się, że wszystkie zależności są obecne i że ścieżki dołączane lub lokalizacje bibliotek są poprawne. (Katalogi vc++ właściwości konfiguracji właściwości>>projektu)>

  4. Zidentyfikuj i napraw błędy spowodowane odwołaniami do interfejsów API, które już nie istnieją.

  5. Napraw wszelkie pozostałe błędy, które uniemożliwiają kompilację. Zapoznaj się z omówieniem potencjalnych problemów z uaktualnieniem, aby uzyskać poprawki typowych błędów.

  6. Włącz /permissive- i napraw wszelkie nowe błędy spowodowane niezgodnością kodu, który został wcześniej skompilowany w MSVC.

  7. Włącz analizę kodu, aby zidentyfikować potencjalne problemy lub nieaktualne wzorce kodowania, które nie są już uznawane za dopuszczalne. Jeśli analiza kodu flaguje wiele błędów, możesz wyłączyć niektóre ostrzeżenia, aby skupić się na najważniejszych. Środowisko IDE może pomóc w przypadku szybkich poprawek w przypadku niektórych rodzajów problemów.

  8. Rozważ inne możliwości modernizacji kodu. Na przykład zastąp niestandardowe struktury danych i algorytmy tymi z standardowej biblioteki języka C++ lub biblioteką open source Boost. Korzystając ze standardowych funkcji, ułatwiasz innym osobom konserwację kodu. Możesz mieć pewność, że ten kod został dobrze przetestowany i sprawdzony przez wielu ekspertów w komitecie standardów i szerszej społeczności języka C++.

W przypadku błędów trudnych do naprawienia możesz wyszukać rozwiązania lub opublikować pytanie w witrynie Microsoft Learn Q&A. W przypadku problemów w kompilatorze i narzędziach języka C++ wypróbuj witrynę internetową społeczności deweloperów języka C++.

W tym obszarze

Omówienie potencjalnych problemów z uaktualnieniem
Uaktualnienie kodu do Universal CRT
Aktualizowanie winVER i _WIN32_WINNT
Naprawianie zależności w bibliotece wewnętrznej
Problemy przy migracji liczb zmiennoprzecinkowych
Funkcje języka C++ przestarzałe w programie Visual Studio
VCBuild a MSBuild
Biblioteki innych firm

Zobacz też

Co nowego w programie Visual C++ w programie Visual Studio
Visual C++ — historia zmian w latach 2003–2015
Niestandardowe zachowanie
Przenoszenie aplikacji danych