Jak używać języka C # 7 w programie Visual Studio 2015?

146

Visual Studio 2017 (15.x) obsługuje język C # 7, ale co z Visual Studio 2015 (14.x)?

Jak mogę z nim używać C # 7?

Luis Teijon
źródło
2
skieruj
Sunil Kumar
8
@SunilKumar: To umożliwia im VS 15 (czyli VS 2017). Nigdzie nie wspomina się o VS 2015 (czyli VS 14).
Jon Skeet,

Odpowiedzi:

162

Kompilator dostarczany z programem Visual Studio można zamienić na wersję obsługującą język C # 7, instalując pakiet Nuget Microsoft.Net.Compilers :

Odwołanie do tego pakietu spowoduje, że projekt zostanie zbudowany przy użyciu określonej wersji kompilatorów C # i Visual Basic zawartych w pakiecie, w przeciwieństwie do dowolnej wersji zainstalowanej w systemie.

Nic nie wskazuje na to, że widzę na stronie pakietu, czy jest to oficjalnie obsługiwane w Visual Studio 2015. Moje niezbyt dokładne testy do tej pory wskazują, że działa, ale nie bezboleśnie - kompiluje się kod C # 7, ale jest podkreślony czerwonym falista linia, która wskazuje na błąd składni: Zrzut ekranunależy również zainstalować pakiet Nuget System.ValueTuple, aby korzystać z nowych funkcji krotek wartości C # 7.

Stephen Kennedy
źródło
9
W takim przypadku lepiej byłoby użyć kodu Visual Studio, lub po prostu zainstalować Visual Studio 2017 Community
Panagiotis Kanavos
3
Dobrze wiedzieć. Możesz więc powoli przełączać niektóre projekty na VS2017, wiedząc, że w nagłych przypadkach inni programiści mogą pracować z Twoim kodem.
ecth
10
Uwaga, chociaż teoretycznie zgadzam się z @PanagiotisKanavos, jeśli Twój pracownik średniej lub dużej firmy VS2017 Community Edition prawdopodobnie nie może być używany jako licencjobiorca. Uważam, że VS Code to prawdziwy FOSS.
Chris Marisic
6
Zainstalowałem najnowszą wersję nuget Microsoft.Net.Compilers w moich projektach platformy Xamarin.Forms UWP, Windows 8.1 i Windows Phone 8.1, a także najnowszą wersję nuget System.ValueTuple (oraz najnowszą wersję wszystkich innych modeli użytkowych z serii System. *) . Wydaje się, że wszystko działa dobrze w kompilacji i czasie wykonywania. (Nie wypróbowałem wszystkich zakamarków zestawu funkcji debuggera.)
optikos
13
VS2015.3, kompilowanie dla .NET 4.7.1: Microsoft.Net.Compilers is only supported on MSBuild v15.0 and above- Musiałem użyć tej wersji: nuget.org/packages/Microsoft.Net.Compilers/2.4.0, aby go zbudować, a potem działało dobrze. :)
Facet z CAD
5

W moim przypadku instalacja samych Microsoft.Net.Compilers nie zadziałała. Zamiast tego musiałem wykonać następujące czynności:

  1. Zainstaluj Microsoft.CodeDom.Providers.DotNetCompilerPlatform dla projektu ( Tools => NuGet Package Manager => Manage Nuget Packages for Solution ... ) i zainstaluj Microsoft.CodeDom.Providers.DotNetCompilerPlatform .
  2. Zainstaluj najnowsze kompilatory Microsoft.Net dla projektu
  3. Zainstaluj dowolny inny pakiet NuGet dla najnowszej funkcji języka C #, której chcesz użyć. W moim przypadku moim celem było użycie krotek, więc zainstalowałem System.ValueTuple i działało dobrze.

Pamiętaj jednak, że kody C #, które nie są znane domyślnemu kompilatorowi programu Visual Studio 2015, nadal będą miały pod spodem czerwone zawijasy.

yibe
źródło