Verwenden von nativen Zielversionen in Visual Studio, um alte Projekte zu erstellen

Normalerweise wird empfohlen, dass Sie Ihre Projekte aktualisieren, wenn Sie die neueste Version von Visual Studio installieren. Die Kosten für die Aktualisierung Von Projekten und Code sind häufig mehr als durch die Vorteile der neuen IDE, Compiler, Bibliotheken und Tools ausgeglichen. Wir wissen jedoch, dass Sie einige Projekte möglicherweise nicht aktualisiert können. Möglicherweise verfügen Sie über Binärdateien, die an ältere Bibliotheken oder Plattformen gebunden sind, die aus Standard Gründen kein Upgrade durchführen können. Ihr Code kann womöglich nicht standardmäßige Sprachkonstrukte verwenden, die Fehler verursachen würden, wenn sie an einen aktuelleren Compiler verschoben werden würden. Ihr Code basiert möglicherweise auf Drittanbieterbibliotheken, die für eine bestimmte Version von Visual C++ kompiliert wurden. Alternativ können Sie Bibliotheken für andere erstellen, die auf eine bestimmte ältere Version von Visual C++ abzielen müssen.

Glücklicherweise können Sie Visual Studio verwenden, um Projekte zu erstellen, die auf ältere Compilertoolsets und -bibliotheken abzielen. Wenn sie noch die ursprünglichen Tools installiert haben, müssen Sie kein Upgrade eines Projekts von weit zurück auf Visual Studio 2010 durchführen, um neue Features in der IDE zu nutzen:

  • Neue Umgestaltungsfunktionen für C++ und experimentelle Funktionen für den Editor
  • Neues Debuggerfenster „Diagnosetools“ und neues Fenster „Fehlerliste“
  • Überarbeitete Breakpoints, das Fenster „Ausnahmen“ und neue PerfTips
  • Neue Tools zur Codenavigation und Suche
  • Neue C++-Schnellkorrekturen und Erweiterungen für Productivity Power Tools

Sie können auch auf Visual Studio 2008-Projekte abzielen, doch diese können nicht unverändert verwendet werden. Weitere Informationen finden Sie im Abschnitt Anweisungen für Visual Studio 2008.

Die neuesten Versionen von Visual Studio unterstützen die native Festlegung von Zielversionen und Roundtripping für Projekte. Die native Festlegung von Zielversionen ist Möglichkeit der neuesten IDE für die Entwicklung mithilfe von Toolsets, die von vorherigen Versionen von Visual Studio installiert wurden. Die Roundtrip-Funktion ist die Fähigkeit der neuesten IDE, ohne jede Änderung an dem Projekt eine frühere Version der IDE erstellte Projekte zu laden. Wenn Sie die neueste Version von Visual Studio zusammen mit Ihrer aktuellen Version installieren, können Sie die neue Version der IDE mit dem Compiler und den Tools aus der aktuellen Version verwenden, um Ihre Projekte zu erstellen. Andere Mitglieder Ihres Teams können weiterhin die Projekte in der älteren Version von Visual Studio verwenden.

Wenn Sie ein älteres Toolset verwenden, können Sie von vielen der neuesten IDE-Features profitieren, jedoch nicht von den neuesten Fortschritten im C++-Compiler, in den Bibliotheken und Buildtools. Sie können z.B. nicht die neuen verbesserten Sprachübereinstimmungen sowie die neuen Features für das Debuggen und zur Codeanalyse. Ebenso erhalten Sie nicht den schnelleren Builddurchsatz des neuesten Toolsets. Es gibt auch einige IDE-Funktionen, die mit älteren Toolsets nicht kompatibel sind. Typinformationen fehlen z. B. im Memory Profiler, und der Umgestaltungsvorgang Convert in Raw-Zeichenfolgenliterale generiert C++11-konformen Code, der nicht kompiliert wird, wenn Sie Visual Studio 2012 oder ältere Toolsets verwenden.

So verwenden Sie die native Festlegung von Zielversionen in Visual Studio

Nachdem Sie Visual Studio parallel mit Ihrer älteren Version installiert haben, öffnen Sie Ihr vorhandenes Projekt in der neuen Visual Studio-Version. Wenn das Projekt geladen wird, fragt Visual Studio Sie, ob sie die Version für die Verwendung des neuesten C++-Compilers und der C++-Bibliotheken upgraden möchten. Da Sie möchten, dass das Projekt den alten Compiler und die alten Bibliotheken behält, klicken Sie auf die Schaltfläche Abbrechen.

Visual Studio upgradet weiterhin Ihr Projekt. Um das Upgradedialogfeld nicht jedes Mal zu sehen, wenn Sie das Projekt laden, können Sie die folgende Eigenschaft in Ihren Projekten oder in den .props.targets importierten Dateien definieren:

<VCProjectUpgraderObjectName>NoUpgrade</VCProjectUpgraderObjectName>

Wenn Sie Ihre Projekte upgraden möchten, müssen Sie diese Eigenschaft entfernen.

Wenn Sie kein Upgrade durchführen möchten, führt Visual Studio keine Änderungen an Ihrer Projektmappe oder den Projektdateien durch. Wenn Sie das Projekt erstellen, sind die generierten Binärdateien vollständig kompatibel mit den, mit denen Sie mit der älteren Version von Visual Studio erstellt haben, da Visual Studio denselben C++-Compiler verwendet und die gleichen Bibliotheken verknüpft, mit denen Ihre ältere IDE ausgeliefert wurde. Aus diesem Grund warnt Sie das Upgradedialogfeld, um die ältere Visual Studio-Version zu installieren, wenn Sie "Abbrechen" auswählen.

Anweisungen für Visual Studio 2008

Visual Studio 2008 verfügte über ein eigenes dediziertes Buildsystem für C++ mit dem Namen VCBuild. In Visual Studio 2010 wurden Visual Studio C++-Projekte so geändert, dass MSBuild verwendet wird. Unabhängig davon, ob sie dauerhaft oder multiadressieren, müssen Sie einen Updateschritt durchlaufen, um Ihre Visual Studio 2008-Projekte in der neuesten Version von Visual Studio zu erstellen. Ihr aktualisiertes Projekt erstellt noch immer Binärdateien, die mit den Binärdateien, die mithilfe der IDE von Visual Studio 2008 erstellt wurden, voll kompatibel sind.

Zunächst müssen Sie zusätzlich zur aktuellen Visual Studio-Version Visual Studio 2010 auf demselben Computer erstellen, auf dem sich Visual Studio 2008 befindet. Nur Visual Studio 2010 installiert die MSBuild-Skripts, die für Visual Studio 2008-Projekte erforderlich sind.

Als Nächstes müssen Sie Ihre Visual Studio 2008-Projektmappen und -Projekte auf die aktuelle Version von Visual Studio aktualisieren. Es wird empfohlen, eine Sicherung Ihrer Projekt- und Projektmappendateien zu erstellen, bevor Sie das Upgrade durchführen. Damit der Upgradeprozess beginnen kann, öffnen Sie die Projektmappe in der aktuellen Version von Visual Studio. Wenn Sie die Aufforderung zur Aktualisierung erhalten, überprüfen Sie die dargestellte Information, und wählen Sie dann OK aus, um mit dem Upgrade zu beginnen. Wenn die Projektmappe über mehrere Projekte verfügt, müssen Sie jedes Projekt aktualisieren. Der Assistent erstellt neue .vcxproj Projektdateien nebeneinander mit den vorhandenen .vcproj Dateien. Solange Sie auch eine Kopie der Originaldatei .sln haben, hat das Upgrade keine andere Auswirkung auf Ihre vorhandenen Visual Studio 2008-Projekte.

Hinweis

Die folgenden Schritte gelten nur für Szenarien mit mehrfacher Zielbestimmung. Wenn Sie beabsichtigen, das Projekt dauerhaft auf ein späteres Toolset zu aktualisieren, besteht der nächste Schritt darin, das Projekt zu speichern, es in der neuesten Version von Visual Studio zu öffnen und die dort angezeigten Buildprobleme zu beheben.

Wenn das Upgrade abgeschlossen ist und der Protokollbericht Fehler oder Warnungen für Ihre Projekte ausgibt, überprüfen Sie diese sorgfältig. Die Konvertierung von VCBuild in MSBuild kann Probleme verursachen. Stellen Sie sicher, dass Sie alle Aktionselemente verstehen und implementieren, die im Bericht aufgeführt sind. Weitere Informationen zum Upgradeprotokollbericht und zu Problemen, die beim Konvertieren von VCBuild in MSBuild auftreten können, finden Sie im Blogbeitrag "C++ Native Multi-Targeting".

Wenn das Upgrade abgeschlossen ist und Sie probleme in der Protokolldatei behoben haben, zielt Ihre Lösung jetzt auf das neueste Toolset ab. Als letzten Schritt ändern Sie die Eigenschaften für jedes Projekt in der Projektmappe, um das Toolset von Visual Studio 2008 zu verwenden. Öffnen Sie mithilfe der Lösung, die in der aktuellen Visual Studio-Version geladen ist, für jedes Projekt das Dialogfeld Eigenschaftenseiten des Projekts: Klicken Sie mit der rechten Maustaste auf das Projekt im Projektmappen-Explorer, und wählen Sie anschließend Eigenschaften aus. Ändern Sie im Dialogfeld Eigenschaftenseiten den Wert der Dropdownliste Konfiguration in Alle Konfigurationen. Wählen Sie unter Konfigurationseigenschaftendie Option Allgemein aus, und ändern Sie dann Plattformtoolset in Visual Studio 2008 (v90).

Nach dieser Änderung wird der Visual Studio 2008-Compiler und die -Bibliotheken zum Generieren von Projektbinärdateien verwendet, wenn Sie die Projektmappe in der aktuellen Version von Visual Studio erstellen.

Installieren eines älteren Visual Studio-Toolsets

Möglicherweise verfügen Sie über ein altes Visual Studio C++-Projekt, das Sie nicht aktualisieren können oder nicht aktualisieren möchten. Zum Erstellen benötigen Sie die Plattformtoolset-Version, die Ihrem Projekt entspricht. Um das Toolset zu erhalten, können Sie die kostenlose Visual Studio Community- oder Express-Edition der benötigten Version installieren. Jede Version von Visual Studio ab Visual Studio 2008 kann den Compiler, die Tools und Bibliotheken installieren, die auf diese Version der aktuellen Visual Studio-Version ausgerichtet sein muss. Durchsuchen Sie das Microsoft Download Center, um eine bestimmte Visual Studio-Version zu finden und herunterzuladen. Stellen Sie sicher, dass Sie die C++-Installationsoptionen während des Setups auswählen. Führen Sie nach dem Abschluss des Setups diese Visual Studio-Version aus, um Updates zu installieren. Prüfen Sie auch auf mögliche Windows Update-Änderungen, die erforderlich sein könnten. Dieser Updateüberprüfungsprozess muss möglicherweise mehrmals wiederholt werden, damit Sie jedes Update erhalten.

Die derzeit verfügbaren Downloads, finden Sie unter Herunterladen älterer Visual Studio-Software.

Wenn diese Produkte installiert sind, wird die Eigenschaftendropdownliste Plattformtoolset im Dialogfeld Eigenschaftenseiten automatisch aktualisiert, um die verfügbaren Toolsets anzuzeigen. Sie können jetzt die neueste Version von Visual Studio verwenden, um Projekte zu erstellen, die eine ältere Version des Toolsets verwenden: keine Konvertierung oder ein Upgrade erforderlich.

Siehe auch

Aktualisieren von Projekten aus früheren Versionen von Visual C++
Verbesserungen der C++-Konformität in Visual Studio 2015