Comment utiliser C # 7 avec Visual Studio 2015?

147

Visual Studio 2017 (15.x) prend en charge C # 7, mais qu'en est-il de Visual Studio 2015 (14.x)?

Comment puis-je utiliser C # 7 avec?

Luis Teijon
la source
2
référez-vous à ce lien: strathweb.com/2016/03/…
Sunil Kumar
8
@SunilKumar: Cela les active dans VS 15 (qui est VS 2017). Il ne mentionne nulle part VS 2015 (qui est VS 14).
Jon Skeet

Réponses:

162

Vous pouvez remplacer le compilateur fourni avec Visual Studio pour une version compatible C # 7 en installant le package Nuget Microsoft.Net.Compilers :

Le fait de référencer ce package entraînera la génération du projet à l'aide de la version spécifique des compilateurs C # et Visual Basic contenus dans le package, par opposition à toute version installée par le système.

Il n'y a aucune indication que je puisse voir sur la page du package si cela est officiellement pris en charge dans Visual Studio 2015. Mes tests non approfondis jusqu'à présent indiquent que cela fonctionne mais pas sans douleur - le code C # 7 se compile, mais est souligné avec le rouge ligne ondulée qui indique une erreur de syntaxe: Capture d'écrannotez que vous devrez également installer le package Nuget System.ValueTuple pour utiliser les nouvelles fonctionnalités de tuples de valeur C # 7.

Stephen Kennedy
la source
9
Dans ce cas, il serait préférable d'utiliser VIsual Studio Code, ou simplement d'installer Visual Studio 2017 Community
Panagiotis Kanavos
3
C'est une bonne chose à savoir. Ainsi, vous pouvez lentement basculer certains projets vers VS2017 en sachant qu'en cas d'urgence, d' autres développeurs peuvent travailler avec votre code.
ecth
10
Notez bien que je suis d'accord en théorie avec @PanagiotisKanavos si votre employé d'une moyenne ou grande entreprise VS2017 Community Edition n'est probablement pas valide pour être utilisé en tant que titulaire de licence. Je crois que VS Code est un vrai FOSS.
Chris Marisic
6
J'ai installé le dernier nuget Microsoft.Net.Compilers sur mes projets Xamarin.Forms UWP, Windows 8.1 et Windows Phone 8.1, ainsi que le dernier nuget System.ValueTuple (plus la dernière révision de tous les autres pépites de la série System. *) . Tout semble fonctionner correctement dans la construction et l'exécution. (Je n'ai pas essayé tous les coins et recoins de l'ensemble de fonctionnalités du débogueur.)
optikos
13
VS2015.3, compilant pour .NET 4.7.1: Microsoft.Net.Compilers is only supported on MSBuild v15.0 and above- J'avais besoin d'utiliser cette version: nuget.org/packages/Microsoft.Net.Compilers/2.4.0 pour le construire, puis cela a bien fonctionné. :)
CAD bloke
5

Dans mon cas, installer uniquement Microsoft.Net.Compilers ne fonctionnait pas. Au lieu de cela, j'ai dû faire ce qui suit:

  1. Installez Microsoft.CodeDom.Providers.DotNetCompilerPlatform pour le projet ( Outils => NuGet Package Manager => Gérer les packages Nuget pour la solution ... ) et installez Microsoft.CodeDom.Providers.DotNetCompilerPlatform .
  2. Installez les derniers compilateurs Microsoft.Net pour le projet
  3. Installez tout autre package NuGet pour la dernière fonctionnalité C # que vous souhaitez utiliser. Dans mon cas, mon objectif était d'utiliser Tuples, j'ai donc installé System.ValueTuple et j'ai bien fonctionné.

Mais notez tout de même que les codes C # qui ne sont pas connus par le compilateur par défaut de Visual Studio 2015 auront toujours des gribouillis rouges en dessous.

yibe
la source