Habilitando c # 7 en una aplicación asp.net

Empecé a trabajar en mi solución anterior en Visual Studio 2017. Solo abrir la solución en el antiguo IDE funcionaba a la perfección. Los proyectos de aplicación c # ahora son predeterminados para el comstackdor c # 7.0. Las páginas de propiedades de esos proyectos (comstackción / avanzada) permiten elegir fácilmente la versión del comstackdor del lenguaje de destino, por defecto a la última.

Sin embargo, no puedo encontrar una forma de habilitar c # 7.0 en los proyectos web de asp.net . Si escribo una statement como:

if (int.TryParse("1", out int myInt)) { ... } 

el IDE me advierte diciendo que necesito usar la versión 7+ del idioma.

Mi investigación sobre este tema muestra que debo enfocarme en la versión específica de c # en el área de comstackdores del sitio del archivo web.config, para apuntar a la versión más nueva de Roslyn.

Lo que tengo ahora es:

     

que se dirige a c # 6. ¿Cuáles son las configuraciones correctas para c # 7, siempre que ya haya descargado la última Roslyn con nuget?

Actualizar Aquí hay una captura de pantalla de las opciones de comstackción disponibles para un proyecto web (es italiano VS2017 pero debería ser fácil de entender). No hay posibilidad de seleccionar la versión de c # específica allí. Opciones de compilación

En la ventana NuGet del sitio web:

  1. Desinstalar Microsoft.CodeDom.Providers.DotNetCompilerPlatform
  2. Reinstalarlo
  3. En web.config , en: system.codedom > compilers > compiler , change compilerOptions = “/ langversion: 6 to 7

Puedo comstackrlo con la configuración de idioma predeterminada, pero no con la opción C # 7. enter image description here

Pero debajo de la configuración da error de tiempo de comstackción:

enter image description here

para que pueda mantener la configuración de la versión del idioma como predeterminada.

Si experimentas con Roslyn y no usas la comstackción del comstackdor por defecto de Visual 2017, entonces es posible que necesites hacer algunos cambios más.

Seleccione el nombre de su proyecto y haga clic con el botón derecho >> Ventana Propiedades >> Crear y luego agregue las dos opciones siguientes en el cuadro de texto “Símbolos de comstackción condicionales” DEMO , DEMO_EXPERIMENTAL

enter image description here

Actualizar

Para usar C # 7.0, necesita usar la versión 2.0+ de Microsoft.Net.Compilers

enter image description here

después de instalar la última versión de Microsoft.Net.Compilers (2.0+) , puede seleccionar la versión del idioma como C # 7.

así que la mejor solución es instalar la última versión de Microsoft.Net.Compilers (2.0+).

Para la compatibilidad con C # 7.x, establezca la versión del lenguaje de configuración de comstackción del proyecto en la última versión menor de C # (última)

Versión del lenguaje de configuración de comstackción

Si está utilizando proveedores de CodeDOM para .NET Compiler Platform (“Roslyn”) (por ejemplo, el paquete nuget de Microsoft.CodeDom.Providers.DotNetCompilerPlatform) configure compilerOptions = “/ langversion: latest” en web.config para asp.net.

     

Para más información: