¿Cómo usar C # 7 con Visual Studio 2015?

147

Visual Studio 2017 (15.x) es compatible con C # 7, pero ¿qué pasa con Visual Studio 2015 (14.x)?

¿Cómo puedo usar C # 7 con él?

Luis Teijon
fuente
2
consulte este enlace: strathweb.com/2016/03/…
Sunil Kumar
8
@SunilKumar: Eso los habilita en VS 15 (que es VS 2017). No menciona VS 2015 (que es VS 14) en ninguna parte.
Jon Skeet

Respuestas:

162

Puede reemplazar el compilador enviado con Visual Studio para una versión habilitada para C # 7 instalando el paquete Nuget Microsoft.Net.Compilers :

Hacer referencia a este paquete hará que el proyecto se construya utilizando la versión específica de los compiladores de C # y Visual Basic contenidos en el paquete, a diferencia de cualquier versión instalada del sistema.

No hay indicios de que pueda ver en la página del paquete si esto se admite oficialmente en Visual Studio 2015. Mis pruebas no exhaustivas hasta ahora indican que funciona pero no sin problemas: el código C # 7 se compila, pero está subrayado con el rojo línea ondulada que indica un error de sintaxis: Captura de pantallatenga en cuenta que también necesitará instalar el paquete Nuget System.ValueTuple para usar las nuevas características de tuplas de valor C # 7.

Stephen Kennedy
fuente
9
En ese caso, sería mejor usar VIsual Studio Code, o simplemente instalar Visual Studio 2017 Community
Panagiotis Kanavos
3
Es bueno saberlo. Por lo tanto, puede cambiar lentamente algunos proyectos a VS2017 sabiendo que en caso de emergencia, otros desarrolladores pueden trabajar con su código.
Ecth
10
Tenga en cuenta que, en teoría, estoy de acuerdo con @PanagiotisKanavos si su empleado de una empresa mediana o grande VS2017 Community Edition probablemente no sea válido para ser utilizado como licenciatario. Creo que VS Code es verdadero FOSS.
Chris Marisic
66
Instalé el último nuget de Microsoft.Net.Compilers en mis proyectos Xamarin.Forms UWP, Windows 8.1 y Windows Phone 8.1, así como el último Nuget System.ValueTuple (más la última revisión de todos los otros nugets de la serie System. *) . Todo parece funcionar bien en la compilación y el tiempo de ejecución. (No he probado todos los rincones del conjunto de características del depurador).
optikos
13
VS2015.3, compilando para .NET 4.7.1: Microsoft.Net.Compilers is only supported on MSBuild v15.0 and above- Necesitaba usar esta versión: nuget.org/packages/Microsoft.Net.Compilers/2.4.0 para compilarlo, luego funcionó bien. :)
CAD bloke
5

En mi caso, instalar solo Microsoft.Net.Compilers no funcionó. En cambio, tuve que hacer lo siguiente:

  1. Instale Microsoft.CodeDom.Providers.DotNetCompilerPlatform para el proyecto ( Herramientas => NuGet Package Manager => Gestionar paquetes Nuget para la solución ... ) e instale Microsoft.CodeDom.Providers.DotNetCompilerPlatform .
  2. Instale los últimos Microsoft.Net.Compilers para el proyecto.
  3. Instale cualquier otro paquete NuGet para la última función de C # que quiera usar. En mi caso, mi objetivo era usar Tuples, así que instalé System.ValueTuple y funcionó bien.

Pero aún tenga en cuenta que los códigos C # que no son conocidos por el compilador predeterminado de Visual Studio 2015 todavía tendrán garabatos rojos debajo.

yibe
fuente