Las características de C # 6.0 no funcionan con Visual Studio 2015

Estoy probando Visual Studio 2015 con C # 6.0 pero las características del idioma no funcionan. En una aplicación web MVC, el siguiente código se comstack:

if (!string.IsNullOrWhiteSpace(Model.Profile?.TypeName)) { // More logic here... } 

Sin embargo, cuando ejecuto la aplicación a través de Debug e IIS Express, aparece el siguiente error:

CS1525: término de expresión no válido ‘.’

¿Cómo habilito estas características?

Esto funciona en MVC 5 (probado 5.2.3), solo necesita agregar el código roslyn dom paquete Nuget

Proveedores de CodeDOM para el comstackdor .NET …

Reemplazar a los proveedores de CodeDOM que usan el nuevo comstackdor .NET Compiler Platform (“Roslyn”) como API de servicio. Esto proporciona soporte para nuevas funciones de lenguaje en sistemas que utilizan CodeDOM (por ejemplo, comstackción de tiempo de ejecución de ASP.NET) y mejora el rendimiento de comstackción de estos sistemas.

 PM> Install-Package Microsoft.CodeDom.Providers.DotNetCompilerPlatform 

https://www.nuget.org/packages/Microsoft.CodeDom.Providers.DotNetCompilerPlatform/

Bueno, tengo MVC5 y recientemente instalé VS 2015.

Instalé el paquete de proveedores de CodeDOM, pero no sirvió … Pero después de eso me di cuenta de que ese paquete solo es compatible con Framework 4.5, mientras que con Target Framework establecido en 4.6 durante las pruebas, funciona con 4.5 aunque …

Así que preste atención también al marco de destino. Si tiene 4.5, simplemente instale el paquete Microsoft.CodeDom.Providers.DotNetCompilerPlatform. Pero si tiene 4.5.1-4.6 como objective, tendrá que cambiar en la sección web.config

          

Para C # , simplemente cambie el tipo a:

 type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" 

Estaba teniendo este mismo problema en Visual Studio 2015. Otra respuesta aludí a la solución que utilicé, pero especificaron incorrectamente la corrección y nunca dieron una aclaración.

En el menú de Visual Studio, seleccione Proyecto y debería ver el subartículo Habilitar C # 6 / VB 14 si tiene este problema. Seleccione este subtema del menú. Descargará los paquetes correctos de Nuget e instalarlos. Después de esto, reinicie Visual Studio y vuelva a cargar su solución.

No puedo verificar si esto también arreglará la selección de Propiedades del proyecto> Comstackción> Avanzado> Versión de idioma a C # 6 , por lo que es posible que desee comprobar esto también después de habilitar C # 6 en el menú.

Compruebe las propiedades de su proyecto, vaya a comstackción, avance y vea si C # 6.0 si no lo tiene como predeterminado.

Actualmente existe un soporte perfecto para MVC5 y C # 6.0 y funciona increíblemente bien.

Incluyendo seguir los consejos de instalar el último Microsoft.CodeDom.Providers.DotNetCompilerPlatform , también tuve que configurar mi raíz Web.config system.codedom para que finalmente todos los errores en Visual Studio 2015 desaparezcan:

        

Ahora reinicie Visual Studio y eso debería hacerlo.

Visual Studio 2015 también mostrará una Enable C#6 / VB 14 en el menú Proyecto con un sitio web ASP.NET / aplicación web seleccionada.

Esto instalará de facto Microsoft.Net.Compilers paquetes Microsoft.CodeDom.Providers.DotNetCompilerPlatform y Microsoft.Net.Compilers en su proyecto y agregará las tags apropiadas en el archivo web.config.

Visual Studio 2015: habilite el snipp cs6