J'essaie de cibler .NET 4.6 et de tirer parti de la dernière version de C # en modifiant la version du langage C # en 6.
Cependant lors de la compilation j'ai eu cette erreur:
Error Option non valide '6' pour/langversion; doit être ISO-1, ISO-2, 3, 4, 5 ou par défaut
Si je mets à jour le paramètre /langversion:6
dans Web.Config à 5 cela fonctionne,
<system.codedom>
<compilers>
<compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CSharp.CSharpCodeProvider, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" warningLevel="4" compilerOptions="/langversion:6 /nowarn:1659;1699;1701">
Mais comment puis-je résoudre ce problème sans avoir recours à une version en langue inférieure?
J'utilise Visual Studio 2015 Community Edition et j'ai également installé manuellement .NET Framework 4.6 au cas où il n'aurait pas été installé par défaut par Visual Studio 2015.
Le projet est un projet de modèle ASP.NET MVC standard créé par Visual Studio 2015.
Faites attention au compilateur "type" dans le fichier Web.Config
, lors du changement de version de Framework:
pour 4.5 et C # 5 -
type="Microsoft.CSharp.CSharpCodeProvider...
pour 4.6 et C # 6 -
type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
Mettez à jour les packages NuGet suivants (quel que soit celui installé) pour résoudre le problème:
1. Allez dans Projet et sélectionnez les propriétés de votre projet.
2 Sélectionnez Construire et cliquez sur le bouton Avancé.
3. Sélectionnez Langue version par défaut.
4.Enregistrez.
J'ai rencontré un tel comportement si le projet n'était pas entièrement mis à niveau vers VS2015. Si vous ouvrez la solution VS2013 à partir de 2015, vous obtiendrez cette erreur
Voir une réponse à Erreur de compilation ASP.NET!.
Rétrograder votre langage C # à 5 ne fait que masquer le problème. Dès que quelqu'un utilisera une fonctionnalité C # 6, votre site Web/projet se cassera et vous passerez encore du temps à le corriger. Essayez la solution dans le lien.