Wie wählen Sie Visual Studio-Lösung, die Plattform-Toolset für maximale Kompatibilität
Hintergrund
Ich bin offen sourcing ein paar alte Visual Studio-Anwendungen erstellte ich eine Weile zurück. Erstellt habe ich die neuen Lösungen mit meinem neuen VS2012 Umgebung für Sie, und bekommen haben die Projekte als git-repositories. Ich habe alles in Ordnung, die in Visual Studio 2012 mit keine änderungen an der source-code ist alles, was ich tun musste, war sicherzustellen, dass ich war die Verknüpfung der richtigen Bibliotheken in das neue Projekt-Konfigurationen.
Ich konfigurieren möchte, diese Projekte zu haben maximale Kompatibilität für andere Download das Projekt von Github. Auf dieser Maschine habe ich VS2010 installiert und den neuesten VS2012-version. Nachdem ich alles richtig für beide Projekte, die in VS2012, ich habe versucht, öffnen Sie Sie in VS2010.
Wenn ich versuchte, Sie zu bauen bekam ich einen einzigen Fehler:
Specified platform toolset (v110) is not installed or invalid.
Please make sure that a supported PlatformToolset value is selected.
C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Platforms\Win32\Microsoft.Cpp.Win32.Targets 518
Was Ich Auch Versuchte,
Also öffnete ich die Eigenschaften für das Projekt, ging Configuration Options --> General
und die Plattform-Toolset war in der Tat zu Visual Studio 2012 (v110)
. Dieser Eingang ist ein drop-down-box und die v110
Wert wird nicht aufgeführt, stattdessen bekomme ich zwei Möglichkeiten:
- v100
- v90
Diese entsprechen VS2010 und VS2008 beziehungsweise. Wenn ich den Wert zu ändern v100 und neu erstellen, bekomme ich keine Fehler und mein Programm läuft einfach gut in mein Visual Studio 2010-Umgebung.
Wenn ich öffnen Sie das Projekt wieder in Visual Studio 2012, wenn die mir sagt, dass ich ein altes Projekt-Datei und fragt, ob ich aktualisieren möchten, ich sage ja und upgrades. Ich neu erstellen und ausführen, um sicherzustellen, dass alles noch funktioniert. Wenn ich öffnen Sie die Konfigurations-Optionen in VS2012 die Plattform-Toolset wieder auf die `Visual Studio 2012 (v110), sondern klicken auf den drop-down-Eingabe gibt es einige weitere Möglichkeiten aufgeführt:
- Visual Studio 2012 (v110)
- v110_wp80
- Visual Studio 2012, Windows XP (v110_xp)
- Visual Studio 2010 (v100)
- Visual Studio 2008 (v90)
- ‹inherit from parent oder project defaults›
Meine Fragen
Dies führte mich zu mehreren Fragen. Ich werde posieren Sie alle. Es wäre schön, Holen Sie so viele Informationen wie ich kann, aber eine gute Antwort auf nur eine von Ihnen würde wohl mein problem lösen.
- Wenn ich nicht mit spezifischen Funktionen der neueren Versionen von Visual Studio, ist es möglich, eine Lösung, die geöffnet werden können und laufen ohne änderungen in so vielen Versionen wie möglich (dh. 2008, 2010 oder 2012)? Wenn ja, wie?
- Wenn ich die Plattform-Toolset , v90 (VS2008) innerhalb von Visual Studio 2012, und es ist in der Lage zu erstellen und auszuführen, bedeutet dies, dass es erstellen und ausführen für Benutzer mit VS2012, VS2010 und VS2008?
- Was genau macht der
<inherit for parent or project defaults>
- option? Was würde das Projekt standardmäßig eingerichtet werden? Können diese verwendet werden, um zu sagen, Visual Studio, um zu versuchen, um welche installiert Plattform-Toolset arbeiten. - Gibt es andere Optionen neben Plattform-Toolset in Visual Studio, die ich einstellen kann, erhöhen die Kompatibilität mit anderen Entwicklungsumgebungen?
InformationsquelleAutor Cory Gross | 2013-08-07
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies ist eine etwas heikle situation. Eines der zugrunde liegenden Probleme ist hier, dass VS2010 und VS2012 verwenden von MSBuild zum erstellen von C++ - Projekten, aber VS2008 gefarmt, es heraus zu VCBuild statt. Sie können dies durch den Vergleich der Projekt-Dateien. VS2010/VS2012 benutzen .vcxproj, während VS2008 verwendet .vcproj.
Für maximale Kompatibilität, die Sie ansprechen möchten den kleinsten gemeinsamen Nenner (d.h. vc90 in diesem Fall). Beachten Sie, dass, wenn Sie einen upgrade der Lösung Datei-und Projekt-Dateien auf die neueste version aktualisiert, das kann die Kompatibilität mit älteren Versionen von Visual Studio.
Nicht wirklich, wegen der .vcxproj /.vcproj Konflikt oben angegeben.
Zum Beispiel, ich habe derzeit ein set .vcxproj-Dateien und eine Lösung für VS2010. Ich benutze VS2012 als meine IDE, also wenn ich öffnen Sie die VS2010-solution in VS2012, ich wähle NICHT, aktualisieren Sie es und öffnen Sie einfach es wie es ist. VS2012 und darüber hinaus sollte abwärtskompatibel zurück in VS2010 so weit wie Projekt-Dateien gehen.
Für maximale Kompatibilität in Entwicklungsumgebungen, meine Empfehlung wäre die Verwendung VS2010-solution als baseline-targeting-v100. Entwickler können jede neuere version als das, und es sollte arbeiten alle zusammen, die sich anmutig.
InformationsquelleAutor Soo Wei Tan