C# 6.0 ne fonctionne Pas avec Visual Studio 2015
Je suis en train de tester Visual Studio 2015 avec C# 6.0, mais les possibilités de la langue ne sont pas de travail. Dans une application web MVC, le code suivant ne compile:
if (!string.IsNullOrWhiteSpace(Model.Profile?.TypeName))
{
//More logic here...
}
Cependant, lorsque je lance l'application via le Débogage et IIS Express, j'obtiens l'erreur suivante:
CS1525: Invalid expression du terme '.'
Comment puis-je activer ces fonctionnalités?
- Cela sonne comme il MVC-spécifique (ou, au moins, ASP.NET-spécifique) donc j'ai ajouté une balise parce que Visual Studio lui-même sait très bien sur C# 6... vous devriez regarder où que vous configurez MVC en termes de la version de .NET c'est le ciblage... il est possible qu'il y a là quelque chose qui va vous permettre de spécifier le compilateur à utiliser.
- Peut-être vous avez besoin d'ajouter un
compiler
élément pour le roslyn codeprovider msdn.microsoft.com/en-us/library/y9x69bzw(v=vs. 110).aspx dans le web.config? - Est ce code dans une page aspx ou Rasoir page? ou le code qui est dans un .cs fichier?
- C'est dans un Rasoir page.
- Êtes-vous à l'aide de MVC5 ou MVC6?
- Je suis en utilisant MVC5. Semble que j'ai besoin pour que le projet soit porté à MVC6...
- Ouais, MVC5 n'est pas compatible Roslyn
- J'ai eu ce problème avec un seul Rasoir vue seulement. Ce fut apparemment causé par le fait qu'un projet a été référencement
MVC 5.2.6
via NuGet et l'autre était une manuel de référence ajouté àMVC 5.2.3
Ce conflit ne s'est pas présenté sur le NuGet Gérer > la consolidation de l'onglet parce que c'était un manuel de référence. Une fois que j'ai mis à jour pour êtreMVC 5.2.6
cette erreur a disparu.
Vous devez vous connecter pour publier un commentaire.
Cela fonctionne dans MVC 5 (testé 5.2.3), il vous suffit d'ajouter le roslyn code dom package Nuget
CodeDOM Fournisseurs .NET Compilateur...
https://www.nuget.org/packages/Microsoft.CodeDom.Providers.DotNetCompilerPlatform/
nuget.org
. Comme vous pouvez le voir sur le lien, c'est le bon nom, et le package existe.Bien, j'ai MVC5 et récemment installé VS 2015.
J'ai installé CodeDOM fournisseurs de paquet, mais il n'a pas aidé...
Mais après que j'ai réalisé, ce package prend en charge framework 4.5 seulement, alors que j'ai du framework cible fixé à 4,6 lors de tests - il fonctionne avec 4.5 si...
Donc attention également à la cible cadre. Si vous avez 4.5 - il suffit d'installer le package Microsoft.CodeDom.Les prestataires.DotNetCompilerPlatform. Mais si vous avez 4.5.1-4.6 comme une cible, vous devez changer dans le web.section de configuration
Pour C#, il suffit de changer type à:
C# 6
de travailler avecASP.NET 4.6
, mais il aurait été mieux de poster le code avec le bontype
déjà là...J'ai eu ce même problème dans Visual Studio 2015. Une autre réponse ici fait allusion à la solution que j'ai utilisée, mais ils spécifié de manière incorrecte la correction et n'a jamais donné de précisions.
Sur le menu Visual Studio, sélectionnez Projet et vous devriez voir la sous-rubrique que C#6 /VB 14 si vous rencontrez ce problème. Sélectionnez ce menu sous-élément. Il va télécharger le bon paquets de Nuget et de les installer. Après cela, redémarrez Visual Studio et de recharger votre solution.
Je ne peut pas vérifier si cela permettra également de fixer le Propriétés de Project > Build > Avancé > Version en Langue sélection de C# 6, de sorte que vous pourriez vouloir vérifier ce que bien après l'activation de C# 6 dans le menu.
Vérifier vos propriétés du projet, aller de bâtir des, avancées et voir si C# 6.0 si vous ne l'avez pas, en tant que par défaut.
Actuellement il y a un maintien parfait pour MVC5 et C# 6.0 et fonctionne étonnamment bien!
Notamment en suivant les conseils de l'installation de la dernière
Microsoft.CodeDom.Providers.DotNetCompilerPlatform
j'ai également eu à régler mon racineWeb.config
system.codedom
pour enfin obtenir toutes les erreurs dansVisual Studio 2015
à s'en aller:Maintenant redémarrer
Visual Studio
et qui devrait le faire.Visual Studio 2015 sera également montrer une
Enable C#6 /VB 14
dans le menu Projet avec un ASP.NET site web /web de l'application sélectionnée.Ce sera de facto installer
Microsoft.CodeDom.Providers.DotNetCompilerPlatform
etMicrosoft.Net.Compilers
paquets dans votre projet et ajouter des balises appropriées dans le web.fichier de configuration.