Fonctionnalités C # 6.0 ne fonctionnant pas avec Visual Studio 2015

Je teste Visual Studio 2015 avec C # 6.0 mais les fonctionnalités linguistiques ne fonctionnent pas. Dans une application Web MVC, le code suivant comstack:

if (!ssortingng.IsNullOrWhiteSpace(Model.Profile?.TypeName)) { // More logic here... } 

Cependant, lorsque je lance l’application via Debug et IIS Express, j’obtiens l’erreur suivante:

CS1525: Terme d’expression non valide ‘.’

Comment puis-je activer ces fonctionnalités?

Cela fonctionne dans MVC 5 (testé 5.2.3), il vous suffit d’append le package roslyn code dom Nuget

Fournisseurs CodeDOM pour .NET Comstackr …

Fournisseurs CodeDOM de remplacement qui utilisent le nouveau compilateur .NET Comstackr Platform (“Roslyn”) en tant qu’API de service. Cela permet de prendre en charge de nouvelles fonctionnalités de langage dans les systèmes utilisant CodeDOM (par exemple, la compilation d’exécution ASP.NET), ainsi que d’améliorer les performances de compilation de ces systèmes.

 PM> Install-Package Microsoft.CodeDom.Providers.DotNetComstackrPlatform 

https://www.nuget.org/packages/Microsoft.CodeDom.Providers.DotNetComstackrPlatform/

Eh bien, j’ai MVC5 et récemment installé VS 2015.

J’ai installé le paquet de fournisseurs CodeDOM, mais cela n’a pas aidé … Mais après cela, j’ai réalisé que ce paquet ne supporte que framework 4.5, alors que le framework cible est défini sur 4.6 pendant les tests – il fonctionne avec 4.5 cependant …

Donc, faites attention au cadre cible. Si vous avez 4.5 – installez simplement le package Microsoft.CodeDom.Providers.DotNetComstackrPlatform. Mais si vous avez comme cible 4.5.1-4.6, vous devrez changer dans la section web.config

          

Pour C # , changez simplement le type en:

 type="Microsoft.CodeDom.Providers.DotNetComstackrPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetComstackrPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" 

J’avais ce même problème dans Visual Studio 2015. Une autre réponse ici a fait allusion à la solution que j’ai utilisée, mais ils ont mal spécifié le correctif et n’ont jamais donné de clarification.

Dans le menu Visual Studio, sélectionnez Projet et vous devriez voir le sous-élément Activer C # 6 / VB 14 si vous rencontrez ce problème. Sélectionnez ce sous-élément de menu. Il va télécharger les paquets corrects de Nuget et les installer. Après cela, redémarrez Visual Studio et rechargez votre solution.

Je ne peux pas vérifier si cela corrigera également les propriétés du projet> Créer> Avancé> Version de la langue à C # 6 , vous pouvez donc vérifier cela également après avoir activé C # 6 dans le menu.

Vérifiez vos propriétés de projet, allez à la construction, avancez et voyez si C # 6.0 si vous ne l’avez pas comme défaut.

Actuellement, il existe un support parfait pour MVC5 et C # 6.0 et fonctionne étonnamment bien!

Y compris en suivant les conseils d’installation de la dernière version de Microsoft.CodeDom.Providers.DotNetComstackrPlatform je devais également définir ma racine Web.config system.codedom pour obtenir enfin toutes les erreurs dans Visual Studio 2015 :

        

Maintenant, redémarrez Visual Studio et cela devrait le faire.

Visual Studio 2015 affichera également un Enable C#6 / VB 14 dans le menu Projet avec un site Web ASP.NET / une application Web sélectionnée.

Cela va installer de facto les packages Microsoft.CodeDom.Providers.DotNetComstackrPlatform et Microsoft.Net.Comstackrs dans votre projet et append les balises appropriées dans le fichier web.config.

studio visuel 2015 - active cs6 snipp