¿Cómo puedo habilitar todas las funciones de C # 7 en el proyecto Visual Studio 2017?


Después del lanzamiento de Visual Studio 2017, quería intentar crear un proyecto de consola simple con nuevas características de C# 7. Esperaba que simplemente descargara nuevo Visual Studio 2017, luego creara un nuevo proyecto de consola y pudiera usar nuevas características de C# 7. Pero no puedo.

Puedo usar algunas características, como Tuplas si instalo el sistema de paquetes NuGet.ValueTuple .

Pero para otras características, no se lo que tengo que hacer. Por ejemplo este problema de NuGet.

¿Necesito hacer todo ¿esta sucia instalación ahora? ¿O puedo habilitar las funciones de c # 7 de una manera más simple?

Author: chromigo, 2017-03-08

3 answers

Para tipos arbitrarios similares a tareas a los que se vinculó en la segunda parte de su pregunta, debe incluir System.Threading.Tasks.Extensions paquete.

La razón por la que necesita estos paquetes NuGet es porque las nuevas características del lenguaje se basan en nuevos tipos añadidos a.NET framework. Los nuevos tipos de los que dependen las características del lenguaje C# no serán "integrados en el framework" hasta la próxima versión menor publicada después de 4.6.2 para no romper SemVer1. Así que a menos que esté construyendo un proyecto utilizando esa próxima versión del framework 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: Así que 4.7 o 5.0, como sea que decidan llamarlo, si hay un 4.6.3 no estará en esa versión porque eso no es un bache de versión de lanzamiento menor, es un bache de versión de parche y no puede realizar cambios de API en un bache de versión de parche sin violar el Control semántico de versiones.

 31
Author: Scott Chamberlain,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-23 11:54:57

Cualquier proyecto dirigido a.NET 4.7 puede usar tuplas de C# 7 sin agregar un paquete Nuget. Tendrás que instalarlo manualmente:

  1. Actualice a la actualización de Windows 10 Creator (10.0.15063), o instale. NET Framework 4.7 en otras versiones de Windows: https://www.microsoft.com/en-us/download/details.aspx?id=55170
  2. Desde el menú Inicio, ejecute Visual Studio Installer y haga clic en Modificar. Vaya a "Componentes individuales" y compruebe los siguientes dos componentes:
    • . NET Framework 4.7 SDK
    • . NET Framework 4.7 targeting pack

No funciona fuera de la caja en la actualización de Windows 10 Creator porque Microsoft omitió los componentes.NET 4.7 de la carga de trabajo". NET desktop environment". Presenté un error, pero lo cerraron como No un error:

 20
Author: Tao Yue,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-02-16 17:51:45

La actualización 3 de Vs2017 puede admitir c#7.1, pero está configurada de forma predeterminada para admitir c#7.0.

Puede modificar la configuración de su proyecto y seleccionar c # 7.1

Para más detalles cómo configurar vs2017. 3 para soportar la última versión de c#7.1

 1
Author: M.Hassan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-09-25 17:44:41