Acabo de empezar a trabajar en mi solución anterior en Visual Studio 2017. Simplemente abrir la solución en el IDE anterior funcionó a la perfección. Los proyectos de la aplicación c# ahora tienen como valor predeterminado el compilador c# 7.0. Las páginas de propiedades de esos proyectos (compilación/avanzado) permiten elegir fácilmente la versión de idioma de destino del compilador, por defecto a la última.
Sin embargo, no puedo encontrar una manera de habilitar c # 7.0 en los proyectos web asp.net . Si escribo una declaración como:
if (int.TryParse("1", out int myInt)) { ... }el IDE me advierte diciendo que necesito usar la versión 7+ del lenguaje.
Mi investigación sobre este tema muestra que debo apuntar a la versión específica de C# en el área de compiladores system.codedom del archivo web.config, para apuntar a la versión más reciente de Roslyn.
Lo que tengo ahora es:
<system.codedom> <compilers> <compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:6 /nowarn:1659;1699;1701"/>que apunta a c# 6. ¿Cuáles son las configuraciones correctas para c# 7, siempre que ya haya descargado la última versión de Roslyn con nuget?
Actualizar Aquí hay una captura de pantalla de las opciones de compilació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# objetivo allí.
En la ventana NuGet del sitio web:
Microsoft.CodeDom.Providers.DotNetCompilerPlatformweb.config , en: system.codedom > compilers > compiler , cambie compilerOptions ="/langversion: 6 to 7Puedo compilarlo con la configuración de idioma predeterminada pero no con la opción C# 7. 
Pero la configuración a continuación da un error de tiempo de compilación:
para que pueda mantener la configuración de su versión de idioma como predeterminada.
Si experimenta con Roslyn y no usa la compilación predeterminada del compilador de Visual 2017, es posible que deba realizar algunos cambios más.
Seleccione el nombre de su proyecto y haga clic derecho >> Ventana de propiedades >> Construir y luego agregue las siguientes dos opciones en el cuadro de texto "Símbolos de compilación condicional" __DEMO__,__DEMO_EXPERIMENTAL__
Actualizar
Para usar C# 7.0, necesita usar la versión 2.0+ de Microsoft.Net.Compilers
después de instalar la última versión de Microsoft.Net.Compilers (2.0+) , puede seleccionar la versión de idioma como C# 7.
por lo 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 compilación del proyecto en la última versión secundaria de C# (más reciente)
Versión del lenguaje de configuración de compilación
Si utiliza proveedores de CodeDOM para la plataforma del compilador .NET ("Roslyn") (por ejemplo, el paquete nuget Microsoft.CodeDom.Providers.DotNetCompilerPlatform), configure compilerOptions="/langversion:latest" en web.config para asp.net.
<system.codedom> <compilers> <compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.7.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:latest /nowarn:1659;1699;1701"/> </compilers> </system.codedom>Para más información: