Dies wird angezeigt, wenn Sie im Dialogfeld Framework und Referenzen F1 drücken:
Standardmäßig ist für neue Projekte das Zielframework auf .NET Framework 4 festgelegt. Die IDE unterstützt das Ändern des Zielframeworks nicht, Sie können es jedoch manuell ändern. In der Projektdatei (.vcxproj) wird das standardmäßige Zielframework durch das Eigenschaftselement v4.0 dargestellt. Um das Zielframework zu ändern, entladen Sie das Projekt, öffnen Sie die Projektdatei mit einem Texteditor und ändern Sie den Wert des Eigenschaftselements von v4.0 in eine andere Version, die auf Ihrem Server installiert ist. Wenn Sie beispielsweise v3.5 angeben, das .NET Framework v3.5 darstellt, muss Visual Studio 2008 SP1 installiert werden . Speichern und schließen Sie die Datei, laden Sie das Projekt neu und stellen Sie sicher, dass das Zielframework auf der Eigenschaftenseite angezeigt wird. *
Das ist bei konvertierten Projekten nicht besonders genau. Sie müssen das <TargetFrameworkVersion>
Element selbst hinzufügen . Fügen Sie es in die PropertyGroup mit der Bezeichnung "Globals" ein:
<PropertyGroup Label="Globals">
<TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
<others...>
</PropertyGroup>
Die Geschichte ist anders, wenn Sie VS2012 und höher verwenden, die erste Version von VS, die die Einstellung Platform Toolset auf der Eigenschaftenseite Allgemein erhalten hat. Sie müssen dann "v90" auswählen, um einen geeigneten Build für 3.5 zu erhalten. Es ist jedoch umständlich, dass Sie alle Zwischenversionen von VS auf dem Computer installiert haben müssen, damit diese Auswahl verfügbar ist.
Warum Sie VS2008 installieren müssen, muss selbst erklärt werden. Das Hauptproblem besteht darin, dass die C-Laufzeitbibliothek (msvcrt100.dll und höher) .NET-Code enthält, um die Ausführung von verwaltetem Code zu unterstützen. Das entscheidende Detail ist ein Modulinitialisierer, der sicherstellt, dass die CRT in einem Programm, das C ++ / CLI-Code verwendet, korrekt initialisiert wird. Dieser Code zielt immer auf .NET 4 ab, und da er fest in msvcrt100.dll (und höher) eingebettet ist, besteht immer eine grundsolide Abhängigkeit von der Laufzeit von v4.0.30319. Sie können immer nur eine reine v2.0.50727-Abhängigkeit haben, wenn Sie die alte C-Laufzeit msvcrt90.dll verwenden. Sie können nur dann sicher sein, dass Sie eine msvcrt90.dll-Abhängigkeit haben, wenn Sie die # include-Dateien des Compilers von VS2008 verwenden.
Kalte harte Tatsache, dass es ziemlich notwendig ist, bald auf .NET 4 umzusteigen, werden Sie mit solchen Build-Problemen zu kämpfen haben, wenn Sie dies nicht tun. Es gibt nur sehr wenige praktische Hindernisse. .NET 4 ist für alle Ziele, die Sie sich vorstellen können, kostenlos verfügbar. Die Überwindung der FUD, die mit der Umstellung auf eine höhere Laufzeitversion verbunden ist, ist im Allgemeinen nur das eigentliche Problem. Keine Gründe für Angst und Zweifel, es ist stabil.