Bagaimana cara menggunakan C # 7 dengan Visual Studio 2015?

147

Visual Studio 2017 (15.x) mendukung C # 7, tetapi bagaimana dengan Visual Studio 2015 (14.x)?

Bagaimana saya bisa menggunakan C # 7 dengan itu?

Luis Teijon
sumber
2
lihat tautan ini: strathweb.com/2016/03/...
Sunil Kumar
8
@SunilKumar: Itu memungkinkan mereka dalam VS 15 (yaitu VS 2017). Itu tidak menyebutkan VS 2015 (yang VS 14) di mana saja.
Jon Skeet

Jawaban:

162

Anda dapat mengganti kompiler yang dikirim dengan Visual Studio untuk versi yang mendukung C # 7 dengan menginstal paket Nuget Microsoft.Net.Compiler :

Merujuk paket ini akan menyebabkan proyek dibangun menggunakan versi spesifik dari kompiler C # dan Visual Basic yang terkandung dalam paket, yang bertentangan dengan versi sistem yang diinstal.

Tidak ada indikasi yang bisa saya lihat di halaman paket, apakah ini secara resmi didukung di Visual Studio 2015. Tes saya yang tidak menyeluruh sejauh ini menunjukkan bahwa ia bekerja tetapi tidak tanpa rasa sakit - C # 7 mengkompilasi kode, tetapi digarisbawahi dengan merah garis berlekuk-lekuk yang menunjukkan kesalahan sintaks: Tangkapan layarPerhatikan bahwa Anda juga perlu menginstal paket Nuget System.ValueTuple untuk menggunakan fitur tuple nilai C # 7 yang baru.

Stephen Kennedy
sumber
9
Dalam hal ini akan lebih baik menggunakan Kode Visual Studio, atau cukup menginstal Visual Studio 2017 Community
Panagiotis Kanavos
3
Ini hal yang baik untuk diketahui. Jadi, Anda dapat secara perlahan mengalihkan beberapa proyek ke VS2017 dengan mengetahui bahwa dalam keadaan darurat pengembang lain dapat bekerja dengan kode Anda.
ecth
10
Catat sementara saya setuju secara teori dengan @PanagiotisKanavos jika karyawan Anda dari perusahaan menengah atau besar VS2017 Edisi Komunitas kemungkinan tidak valid untuk digunakan sebagai pemegang lisensi. Saya percaya VS Code benar FOSS.
Chris Marisic
6
Saya menginstal nuget Microsoft.Net.Compiler terbaru untuk proyek Xamarin saya.Form UWP, Windows 8.1, dan Windows Phone 8.1, serta nuget System.ValueTuple terbaru (ditambah revisi terbaru dari semua Sistem lainnya. * Nuget seri) . Semuanya tampak berfungsi dengan baik di build dan runtime. (Saya belum mencoba setiap sudut & celah fitur-set debugger.)
optikos
13
VS2015.3, kompilasi untuk .NET 4.7.1: Microsoft.Net.Compilers is only supported on MSBuild v15.0 and above- Saya perlu menggunakan versi ini: nuget.org/packages/Microsoft.Net.Compilers/2.4.0 untuk membangunnya, lalu bekerja dengan baik. :)
CAD cowok
5

Dalam kasus saya, hanya menginstal Microsoft.Net.Compiler tidak berfungsi. Sebaliknya, saya harus melakukan yang berikut:

  1. Instal Microsoft.CodeDom.Providers.DotNetCompilerPlatform untuk proyek ( Tools => NuGet Package Manager => Kelola Paket Nuget untuk Solusi ... ) dan instal Microsoft.CodeDom.Providers.DotNetCompilerPlatform .
  2. Instal Microsoft.Net.Compiler terbaru untuk proyek ini
  3. Instal paket NuGet lainnya untuk fitur C # terbaru yang ingin Anda gunakan. Dalam kasus saya, tujuan saya adalah menggunakan Tuples, jadi saya menginstal System.ValueTuple dan bekerja dengan baik.

Tetapi masih perlu dicatat bahwa kode C # yang tidak dikenal oleh kompiler default Visual Studio 2015 masih akan memiliki coretan merah di bawahnya.

yibe
sumber