web-dev-qa-db-fra.com

Error Option non valide '6' pour/langversion; doit être ISO-1, ISO-2, 3, 4, 5 ou par défaut

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.

75
Rosdi Kasim

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"

Plus d'infos dans ce post de forum

83
DrewB

Mettez à jour les packages NuGet suivants (quel que soit celui installé) pour résoudre le problème:

  • Microsoft.CodeDom.Providers.DotNetCompilerPlatform
  • Microsoft.Net.Compilers
20
Developer

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.

 https://youtu.be/IP8feQeWqkk

8

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

3
Sergii Lischuk

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.

0
PBo