Wie kann ich VS2010 dazu bringen, den 3.0 C # -Compiler anstelle von 4.0 zu verwenden?

8

Wie kann ich VS2010 dazu bringen, den 3.5 C # -Compiler anstelle von 4.0 zu verwenden?

Ist es sogar möglich, oder brauche ich eine separate VS2008-Lösungsdatei, um die Kompilierung mit dem 3.0 Compiler zu erzwingen?

(aktualisiert, um die Compiler-Version # zu beheben)

Aktualisieren : Meine Motivation ist es, die Produktivität der Entwicklung in VS2010 zu steigern, aber es muss auf einem Build-Server laufen, der möglicherweise kein einziges Bit .NET 4.0-Binärdateien enthält.

    
MatthewMartin 23.07.2010, 13:30
quelle

5 Antworten

5

Ich glaube nicht, dass Sie das können. Sie können eine Sprachversion in den Projekteigenschaften festlegen, aber das ist nicht dasselbe wie mit dem C # 3-Compiler von .NET 3.5. Ich glaube, dass es bei der Typinferenz und der Überladungsauflösung feine Unterschiede gibt, zum Beispiel wenn die C # 4-Regeln anstelle der C # 3-Regeln befolgt werden, selbst wenn man als C # 3 baut. Hier ein Beispiel:

%Vor%

Dies wird mit dem C # 4-Compiler erstellt, auch wenn Sie / langversion: 3 angeben - aber es wird nicht mit dem C # 3-Compiler erstellt.

Sie können finden, dass Sie die Projektdatei optimieren können, um die vorherige Version des Compilers zu verwenden - aber ich weiß nicht, wie Visual Studio damit umgehen würde. Ich vermute, es würde schrecklich verwirrt werden.

EDIT: Okay, jetzt haben Sie die Motivation gegeben, ich denke, dass Sie vielleicht das tun wollen, was wir für Noda Time tun . Wir haben eine VS2010-Lösung und eine VS2008-Lösungsdatei. Beide laden dieselben Projekte, die ein ToolsVersion -Attribut von 4.0 haben. Ich habe es nicht versucht, aber ich glaube das sollte absolut gut auf einem Rechner mit nur .NET 3.5 bauen.

Sie sollten die Sprachversion in Ihren Projektdateien auch auf < setzen, um nicht versehentlich neue Funktionen zu verwenden. Es macht Ihre Kompatibilität nicht kugelsicher, aber wenn Sie alle Unit- und Integrationstests auf einem kontinuierlichen Build-Server mit nur .NET 3.5 erstellen und ausführen, sind Sie unwahrscheinlich gebissen von den Änderungen.

    
Jon Skeet 23.07.2010, 13:35
quelle
3

Sie können nicht. Visual Studio 2010 verwendet den 4.0-Compiler, selbst wenn Sie das Framework 3.5 als Ziel haben.

Außerdem gibt es keine Version 3.5 des C # -Compilers.

    
Guffa 23.07.2010 13:36
quelle
1

Kann nicht gemacht werden. Dies ist jedoch nicht besonders wichtig, da der C # 4-Compiler in der Lage ist, .NET 2.0-kompatible Assemblys zu generieren (.NET 3.0 und 3.5 sind lediglich die 2.0-Laufzeit-Engine + neue Compiler und Bibliotheken).

Sind Sie sicher, dass Sie den C # 3-Compiler benötigen (wird mit VS 2008 / .NET 3.5 geliefert) oder ist die Ausgabe kompatibel genug?

    
Ben Voigt 23.07.2010 13:36
quelle
0

Wenn Sie 3.5 installiert haben, sollten Sie das Framework in den Projekteigenschaften auswählen können. Rechtsklick auf den Projektnamen - & gt; Eigenschaften

    
Digital Human 23.07.2010 13:33
quelle
0

Sie können ein Projekt in VS2010 auf das 3.5-Framework (nicht den Compiler) ausrichten.

Doppelklicken Sie einfach auf den Eigenschaftsordner im Solution Explorer (oder klicken Sie mit der rechten Maustaste auf den Projektnamen) und wählen Sie auf der Seite "Eigenschaften" auf der Registerkarte "Anwendung" das gewünschte Framework aus. (Sie können Frameworks 4.0 bis 2.0 auswählen.)

    
David Hoerster 23.07.2010 13:38
quelle

Tags und Links