Después del lanzamiento de Visual Studio 2017, quería intentar crear un proyecto de consola simple con las nuevas características de C# 7. Esperaba que simplemente descargue el nuevo Visual Studio 2017, luego cree un nuevo proyecto de consola y pueda usar las nuevas funciones de C# 7. Pero no puedo.
Puedo usar algunas funciones, como Tuples, si instalo el paquete NuGet System.ValueTuple .
Pero para otras funciones, no sé qué debo hacer. Por ejemplo , este problema de NuGet .
¿Necesito hacer toda esta instalación sucia ahora? ¿O puedo habilitar las funciones de C# 7 de una manera más sencilla?
Para tipos de tareas arbitrarias a las que se vinculó en la segunda parte de su pregunta, debe incluir el paquete System.Threading.Tasks.Extensions
.
La razón por la que necesita estos paquetes NuGet es que las nuevas características del lenguaje se basan en nuevos tipos agregados al marco .NET. Los nuevos tipos de los que dependen las características del lenguaje C# no se "integrarán en el marco" hasta que se publique la próxima versión secundaria después de 4.6.2 para no romper SemVer 1 . Entonces, a menos que esté creando un proyecto usando la próxima versión del marco, necesitará usar los paquetes NuGet para que las características funcionen.
Esto no es diferente a hacer que los métodos de extensión funcionen en un proyecto .NET 2.0 . Puede usar métodos de extensión, pero necesita usar un paquete NuGet (o agregar el código usted mismo) para obtener los tipos en los que se basa para agregarlos a su proyecto.
1: Entonces 4.7 o 5.0, como sea que decidan llamarlo, si hay un 4.6.3 no estará en esa versión porque no es un aumento de versión de lanzamiento menor, es un aumento de versión de parche y no se puede hacer Cambios de API en un aumento de versión de parche sin violar el control de versiones semántico.
Cualquier proyecto que apunte a .NET 4.7 puede usar tuplas C# 7 sin agregar un paquete Nuget. Tendrás que instalarlo manualmente:
Visual Studio Installer
y haga clic en Modificar. Vaya a "Componentes individuales" y verifique los siguientes dos componentes:No funciona de forma inmediata en Windows 10 Creator's Update porque Microsoft omitió los componentes .NET 4.7 de la carga de trabajo del "entorno de escritorio .NET". Presenté un error, pero lo cerraron como Not a Bug:
La actualización 3 de Vs2017 puede admitir c#7.1, pero está configurada de manera predeterminada para admitir c#7.0.
Puede modificar la configuración de su proyecto y seleccionar c# 7.1
para obtener más detalles sobre cómo configurar vs2017.3 para admitir la última versión de c#7.1