Wie verwende ich C # 7 mit Visual Studio 2015?

146

Visual Studio 2017 (15.x) unterstützt C # 7, aber was ist mit Visual Studio 2015 (14.x)?

Wie kann ich C # 7 damit verwenden?

Luis Teijon
quelle
2
Verweisen Sie auf diesen Link: strathweb.com/2016/03/…
Sunil Kumar
8
@SunilKumar: Dadurch werden sie in VS 15 (VS 2017) aktiviert. VS 2015 (VS 14) wird nirgendwo erwähnt.
Jon Skeet

Antworten:

162

Sie können den mit Visual Studio gelieferten Compiler durch eine C # 7-fähige Version ersetzen, indem Sie das Nuget-Paket Microsoft.Net.Compilers installieren :

Wenn Sie auf dieses Paket verweisen, wird das Projekt mit der spezifischen Version der im Paket enthaltenen C # - und Visual Basic-Compiler erstellt, im Gegensatz zu jeder vom System installierten Version.

Es gibt keinen Hinweis darauf, dass ich auf der Paketseite sehen kann, ob dies in Visual Studio 2015 offiziell unterstützt wird. Meine bisher nicht gründlichen Tests zeigen, dass es funktioniert, aber nicht schmerzlos - C # 7-Code wird kompiliert, aber rot unterstrichen Schnörkellose Zeile, die auf einen Syntaxfehler hinweist: BildschirmfotoBeachten Sie, dass Sie auch das Nuget-Paket System.ValueTuple installieren müssen , um die neuen Funktionen für C # 7- Wertetupel verwenden zu können.

Stephen Kennedy
quelle
9
In diesem Fall ist es besser, VIsual Studio Code zu verwenden oder einfach Visual Studio 2017 Community
Panagiotis Kanavos
3
Das ist gut zu wissen. So können Sie einige Projekte VS2017 langsam umschalten zu wissen , dass im Notfall andere Entwickler können mit Ihrem Code arbeiten.
ecth
10
Beachten Sie, dass ich @PanagiotisKanavos theoretisch zustimme, wenn Ihr Mitarbeiter eines mittleren oder großen Unternehmens VS2017 Community Edition wahrscheinlich nicht als Lizenznehmer verwendet werden kann. Ich glaube, VS Code ist wahr FOSS.
Chris Marisic
6
Ich habe das neueste Microsoft.Net.Compilers-Nuget in meinen Xamarin.Forms UWP-, Windows 8.1- und Windows Phone 8.1-Projekten sowie das neueste System.ValueTuple-Nuget (plus die neueste Version aller anderen Nugets der System. * -Serie) installiert. . Im Build und zur Laufzeit scheint alles gut zu funktionieren. (Ich habe nicht jeden Winkel des Funktionsumfangs des Debuggers
ausprobiert
13
VS2015.3, Kompilieren für .NET 4.7.1: Microsoft.Net.Compilers is only supported on MSBuild v15.0 and above- Ich musste diese Version verwenden: nuget.org/packages/Microsoft.Net.Compilers/2.4.0 , um es zu erstellen, dann funktionierte es einwandfrei . :)
CAD Kerl
5

In meinem Fall hat die Installation von Microsoft.Net.Compilers nicht funktioniert. Stattdessen musste ich Folgendes tun:

  1. Installieren Sie Microsoft.CodeDom.Providers.DotNetCompilerPlatform für das Projekt ( Tools => NuGet Package Manager => Nuget-Pakete für Lösung verwalten ... ) und installieren Sie Microsoft.CodeDom.Providers.DotNetCompilerPlatform .
  2. Installieren Sie die neuesten Microsoft.Net.Compiler für das Projekt
  3. Installieren Sie ein anderes NuGet-Paket für die neueste C # -Funktion, die Sie verwenden möchten. In meinem Fall war mein Ziel, Tupel zu verwenden, also habe ich System.ValueTuple installiert und gut funktioniert.

Beachten Sie jedoch, dass C # -Codes, die dem Visual Studio 2015-Standardcompiler nicht bekannt sind, weiterhin rote Kringel aufweisen.

yibe
quelle