Teilen über


Upgrade von C++-Projekten aus früheren Versionen von Visual Studio

Um ein Projekt zu aktualisieren, das in einer früheren Version von Visual Studio erstellt wurde, öffnen Sie das Projekt in der neuesten Version von Visual Studio. Wenn Sie weiterhin eine ältere Version von Visual Studio nebeneinander verwenden, können Sie das Upgrade Ihrer Projekte erst durchführen, wenn Sie bereit sind, die Kompatibilität mit beiden Versionen aufrechtzuerhalten.

In Visual Studio 2026 wird diese Erfahrung mit einem Setup-Assistenten erweitert. Der Setup-Assistent bietet an, fehlende Tools mit dem Visual Studio-Installationsprogramm zu installieren und auf einer älteren Version zu bleiben oder Ihre Projekte auf die neueste Version umzugestalten. Sie können den Setup-Assistenten im Projektmappen-Explorer öffnen, indem Sie mit der rechten Maustaste auf Ihre Projektmappe klicken und die Lösung retarget auswählen.

Wenn der Setup-Assistent geöffnet ist, wählen Sie eine Aktion für jedes Ziel aus, oder wählen Sie "Alle neu ausrichten ", um alle Projekte auf einmal festzulegen. Wählen Sie dann "Übernehmen" aus, um das Upgrade abzuschließen. Sobald Ihre Projekte umgestellt wurden, können sie nicht wieder in die frühere Version zurückkonvertiert werden. Es empfiehlt sich, vor dem Upgrade eine Sicherungskopie der vorhandenen Projekt- und Lösungsdateien zu erstellen.

Hinweis

Visual Studio 2022 und höher unterstützen das Upgrade von Projekttypen mit .dsw- oder .dsp-Erweiterungen nicht mehr. Sie können eine frühere Version von Visual Studio, z. B. Visual Studio 2019, verwenden, um diese Projekte zu aktualisieren, und sie dann erneut in Visual Studio 2022 oder höher aktualisieren, um die neuesten Tools und Features von Visual Studio zu verwenden.

Aktualisieren von Berichten

Wenn Sie ein Projekt aktualisieren, erhalten Sie einen Upgradebericht. Der Bericht wird auch im Projektordner als UpgradeLog.htm gespeichert. Der Upgradebericht zeigt eine Zusammenfassung der Probleme, die während der Konvertierung gefunden wurden. Es enthält einige Informationen zu änderungen, die vorgenommen wurden, einschließlich:

  • Projekteigenschaften.

  • Fügen Sie Dateien ein.

  • Code, der aufgrund von Compilerkonformitätsverbesserungen oder Änderungen im Standard nicht mehr sauber kompiliert wird.

  • Code, der auf Visual Studio- oder Windows-Features basiert, die nicht mehr verfügbar sind. Oder Headerdateien, die nicht in einer Standardinstallation von Visual Studio enthalten sind oder aus dem Produkt entfernt wurden.

  • Code, der aufgrund von Änderungen an APIs wie umbenannten APIs, geänderten Funktionssignaturen oder veralteten Funktionen nicht mehr kompiliert wird.

  • Code, der aufgrund von Änderungen an der Diagnose nicht mehr kompiliert wird, z. B. eine Warnung, die zu einem Fehler wird

  • Linkerfehler aufgrund von Bibliotheken, die geändert wurden, insbesondere, wenn /NODEFAULTLIB verwendet wird.

  • Laufzeitfehler oder unerwartete Ergebnisse aufgrund von Verhaltensänderungen.

  • Fehler, die in den Tools eingeführt wurden. Wenn Sie ein Problem finden, melden Sie es über Ihre normalen Supportkanäle oder mithilfe der Visual Studio C++-Entwicklercommunity-Seite an das Microsoft C++-Team.

Einige aktualisierte Projekte und Lösungen können ohne Änderungen erfolgreich erstellt werden. Die meisten Projekte erfordern jedoch wahrscheinlich Änderungen an den Projekteinstellungen und dem Quellcode. Es gibt keine einzige richtige Möglichkeit zum Beheben dieser Probleme, aber wir empfehlen die Verwendung eines phasenweisen Ansatzes. Bevor Sie beginnen, lesen Sie die Übersicht über potenzielle Upgradeprobleme , um weitere Informationen zu vielen Arten häufiger Fehler zu erhalten.

  1. Legen Sie das Plattformtoolset, den C++-Sprachstandard und die Windows SDK-Version (falls zutreffend) auf die bevorzugten Versionen fest. (Project>General)

  2. Wenn viele Fehler auftreten, können Sie einige Optionen vorübergehend deaktivieren, während Sie sie beheben. Verwenden Sie zum Deaktivieren der Option die /permissive- Konfigurationseigenschaften>> Um die Codeanalyseoption zu deaktivieren, verwenden Sie

  3. Stellen Sie sicher, dass alle Abhängigkeiten vorhanden sind und dass die Pfade oder Bibliotheksspeicherorte korrekt sind. (Project>VC++-Verzeichnisse)

  4. Identifizieren und Beheben von Fehlern durch Verweise auf APIs, die nicht mehr vorhanden sind.

  5. Beheben Sie alle verbleibenden Fehler, die die Kompilierung verhindern. Unter "Übersicht über potenzielle Upgradeprobleme" finden Sie Korrekturen für häufige Fehler.

  6. Aktivieren Sie /permissive- alle neuen Fehler, die durch nicht konformen Code verursacht wurden, der zuvor in MSVC kompiliert wurde, und beheben Sie sie.

  7. Aktivieren Sie die Codeanalyse, um potenzielle Probleme oder veraltete Codierungsmuster zu identifizieren, die nicht mehr als akzeptabel angesehen werden. Wenn die Codeanalyse viele Fehler kennzeichnet, können Sie einige der Warnungen deaktivieren, um sich zuerst auf die wichtigsten zu konzentrieren. Die IDE kann bei Quick Fixes für einige Arten von Problemen helfen.

  8. Berücksichtigen Sie andere Möglichkeiten zum Modernisieren des Codes. Ersetzen Sie beispielsweise benutzerdefinierte Datenstrukturen und Algorithmen durch benutzerdefinierte Datenstrukturen und Algorithmen aus der C++-Standardbibliothek oder durch die Open Source-Bibliothek "Boost". Durch die Verwendung von Standardfeatures erleichtern Sie es anderen Benutzern, den Code zu verwalten. Sie können sicher sein, dass dieser Code von vielen Experten im Standards committee und der breiteren C++-Community gut getestet und überprüft wurde.

Für schwer zu behebende Fehler können Sie nach Lösungen suchen oder eine Frage zu Microsoft Learn Q&A veröffentlichen. Bei Problemen im C++-Compiler und den Tools testen Sie die C++-Entwicklercommunity-Website.

In diesem Abschnitt

Überblick über potenzielle Upgradeprobleme (Visual C++)
Aktualisieren Ihres Codes auf die Universal CRT
Aktualisieren von WINVER und _WIN32_WINNT
Fix your dependencies on library internals (Beheben Ihrer Abhängigkeiten auf bibliotheksinternen Elementen)
Gleitkomma-Migrationsprobleme
In Visual Studio veraltete C++-Features
VCBuild im Vergleich zu MSBuild
Port-Drittanbieterbibliotheken

Siehe auch

Neuerungen für Microsoft C++ in Visual Studio
Änderungsverlauf von Visual C++ von 2003 bis 2015
Nicht dem Standard entsprechendes Verhalten
Portdatenanwendungen