Estaba revisando las últimas funciones introducidas en C # 6.0 y seguí un ejemplo de inicializador de propiedades automáticas
class NewSample
{
public Guid Id { get; } = Guid.NewGuid();
}
pero mi IDE no reconoció la sintaxis.
Me pregunto cómo podría habilitar C # 6.0 en Visual Studio 2013. El marco de Target que estoy usando es 4.5.1.
c#
visual-studio
visual-studio-2013
c#-6.0
Hassaan
fuente
fuente
Respuestas:
Información para el software de prelanzamiento obsoleto:
De acuerdo con esto , es solo una instalación e ir para Visual Studio 2013:
Tan solo obtenga los archivos de https://github.com/dotnet/roslyn y estará listo para comenzar.
Debe saber que es una versión desactualizada de las especificaciones implementadas allí, ya que ya no actualizan el paquete para Visual Studio 2013 :
Entonces, si desea utilizar la última versión, debe descargar Visual Studio 2015 .
fuente
Bajo VS2013 puede instalar los nuevos compiladores en el proyecto como un paquete nuget . De esa manera no necesita VS2015 o un servidor de compilación actualizado.
https://www.nuget.org/packages/Microsoft.Net.Compilers/
El paquete le permite usar / construir código / sintaxis C # 6.0. Debido a que VS2013 no reconoce de forma nativa la nueva sintaxis de C # 6.0, mostrará errores en la ventana del editor de código, aunque se compilará bien .
Con Resharper, obtendrá líneas onduladas en las funciones de C # 6, pero la bombilla le ofrece la opción de 'Habilitar la compatibilidad con C # 6.0 para este proyecto' (configuración guardada en .DotSettings).
Según lo mencionado por @ stimpy77: para soporte en vistas de MVC Razor , necesitará un paquete adicional (para aquellos que no leen los comentarios)
Si desea soporte completo de C # 6.0, necesitará instalar VS2015.
fuente
Muchas de las respuestas aquí se escribieron antes de que Roslyn (los compiladores de código abierto .NET C # y VB) se mudaran a .NET 4.6. Por lo tanto, no lo ayudarán si su proyecto apunta, digamos, 4.5.2 como lo hizo el mío (heredado y no se puede cambiar).
Pero puede obtener una versión anterior de Roslyn en https://www.nuget.org/packages/Microsoft.Net.Compilers e instalarla en lugar de la última versión. Usé 1.3.2. (Intenté 2.0.1, que parece ser la última versión que se ejecuta en .NET 4.5, pero no pude compilarlo *). Ejecute esto desde la consola de Package Manager en VS 2013:
Luego reinicie Visual Studio. Tuve un par de problemas inicialmente; debe volver a configurar la versión de C # por defecto (C # 6.0 no aparece en la lista de versiones, pero parece que se convirtió en la predeterminada), luego limpie, guarde, reinicie VS y vuelva a compilar.
Curiosamente, no tuve ningún error de IntelliSense debido a las características de C # 6.0 utilizadas en el código (que fueron la razón para querer C # 6.0 en primer lugar).
* la versión 2.0.1 arrojó un error La tarea "Microsoft.CodeAnalysis.BuildTasks.Csc no se pudo cargar desde el ensamblado Microsoft.Build.Tasks.CodeAnalysis.dll. No se pudo cargar el archivo o ensamblado 'Microsoft.Build.Utilities.Core, Version = 14.0.0.0, Cultura = neutral, PublicKeyToken = b03f5f7f11d50a3a 'o una de sus dependencias. El sistema no puede encontrar el archivo especificado. Confirme que la declaración es correcta, que el ensamblado y todas sus dependencias están disponibles, y que la tarea contiene un clase pública que implementa Microsoft.Build.Framework.ITask.
ACTUALIZACIÓN Una cosa que he notado desde que publiqué esta respuesta es que si cambia algún código durante la depuración ("Editar y continuar"), le gustaría encontrar que su código C # 6.0 se mostrará repentinamente como errores en lo que parece volver a un entorno anterior a C # 6.0. Esto requiere un reinicio de su sesión de depuración. MUY molesto especialmente para aplicaciones web.
fuente
Vale la pena mencionar que el tiempo de compilación aumentará para los usuarios de VS 2015 después de :
Aquellos que usan VS 2015 y tienen que mantener este paquete en sus proyectos pueden arreglar un mayor tiempo de compilación .
Edite el archivo
packages\Microsoft.Net.Compilers.1.2.2\build\Microsoft.Net.Compilers.props
y límpielo. El archivo debería verse así:Hacerlo obliga a construir un proyecto como estaba antes de agregar el
Microsoft.Net.Compilers
paquetefuente
Es posible usar funciones completas de C # 6.0 en Visual Studio 2013 si tiene Resharper.
¡Tienes que habilitar Resharper Build y listo! En Opciones de Resharper -> Build - active Resharper Build y en "Use MSBuild.exe version" seleccione "Latest Installed"
De esta forma, Resharper construirá sus proyectos de C # 6.0 y tampoco subrayará el código de C # 6.0 como no válido.
También estoy usando esto, aunque tengo Visual Studio 2015 porque:
Estoy poniendo esto aquí, ya que estaba buscando una solución para este problema desde hace algún tiempo y tal vez ayude a alguien más.
fuente
Parece que hay algunos malentendidos. Entonces, en lugar de tratar de parchear VS2013, aquí hay una respuesta de un chico de Microsoft: https://social.msdn.microsoft.com/Forums/vstudio/en-US/49ba9a67-d26a-4b21-80ef-caeb081b878e/will-c- 60-ever-be-support-by-vs-2013? Forum = roslyn
Entonces, por favor, léalo e instale VS2015.
fuente