web-dev-qa-db-fra.com

Comment activer toutes les fonctionnalités de C # 7 dans un projet Visual Studio 2017?

Après la sortie de Visual Studio 2017, je souhaitais essayer de créer un projet de console simple avec de nouvelles fonctionnalités C # 7. Je m'attendais simplement à télécharger le nouveau Visual Studio 2017, puis à créer un nouveau projet de console et à utiliser les nouvelles fonctionnalités de C # 7. Mais je ne peux pas.

Je peux utiliser certaines fonctionnalités, telles que Tuples si j'installe paquetage NuGet System.ValueTuple .

Mais pour les autres fonctionnalités, je ne sais pas ce que je dois faire. Par exemple ce numéro de NuGet .

Ai-je besoin de faire toute cette installation sale maintenant? Ou puis-je activer les fonctionnalités c # 7 d'une manière plus simple?

57
chromigo

Pour les types de tâches arbitraires auxquels vous avez lié dans la 2e partie de votre question, vous devez inclure System.Threading.Tasks.Extensions paquet.

Si vous avez besoin de ces packages NuGet, c'est parce que les nouvelles fonctionnalités linguistiques s'appuient sur de nouveaux types ajoutés au framework .NET. Les nouveaux types dont dépendent les fonctionnalités du langage C # ne seront pas "intégrés au framework" avant la prochaine version mineure publiée après la version 4.6.2 pour ne pas être interrompus SemVer1. Donc, à moins que vous ne construisiez un projet avec cette version du framework, vous devrez utiliser les packages NuGet pour que les fonctionnalités fonctionnent.

Ce n'est pas différent de faire fonctionner des méthodes d'extension dans un projet .NET 2. . Vous pouvez utiliser des méthodes d'extension, mais vous devez utiliser un package NuGet (ou ajouter le code vous-même) pour que les types sur lesquels il repose soient ajoutés à votre projet.


1: Donc 4.7 ou 5.0, quel que soit leur choix, s'il existe un 4.6.3, il ne sera pas dans cette version car il ne s'agit pas d'un bump de version mineure, c'est un bump de version de correctif et vous ne pouvez pas créer L'API change dans une version de correctif sans enfreindre le contrôle de version sémantique.

35

Tout projet qui cible .NET 4.7 peut utiliser des nuplets C # 7 sans ajouter de package Nuget. Vous devrez l'installer manuellement:

  1. Mettez à niveau la mise à jour de Windows 10 Creator (10.0.15063) ou installez .NET Framework 4.7 sur d'autres versions de Windows: https://www.Microsoft.com/en-us/download/details.aspx?id= 5517
  2. Dans le menu Démarrer, exécutez Visual Studio Installer et cliquez sur Modifier. Allez à "Composants individuels" et vérifiez les deux composants suivants:
    • Kit de développement .NET Framework 4.7
    • Pack de ciblage .NET Framework 4.7

Cela ne fonctionne pas immédiatement avec la mise à jour de Windows 10 Creator car Microsoft a omis les composants .NET 4.7 de la charge de travail "Environnement de bureau .NET". J'ai déposé un bogue, mais ils l'ont fermé comme Pas un bogue:

21
Tao Yue

Vs2017 update 3 peut prendre en charge c # 7.1 mais il est configuré par défaut pour prendre en charge c # 7.0.

Vous pouvez modifier les paramètres de votre projet et sélectionner c # 7.1

pour plus de détails comment configurer vs2017.3 pour supporter la dernière version de c # 7.1

2
M.Hassan