Lors de l'utilisation Visual Studio Enterprise 16.3.7
sur deux machines distinctes, l'une se déroule correctement et l'autre machine génère l'erreur:
La fonctionnalité «à l'aide de déclarations» n'est pas disponible dans C # 7.3. Veuillez utiliser la version linguistique 8.0 ou supérieure.
Cela peut facilement être résolu sur la machine de travail aucune en mettant LangVersion
en .csproj
comme suggéré ici https://stackoverflow.com/a/48085575/3850405 ou laisser Visual Studio automatiquement comme fixer l'écran d'impression ci - dessus.
<LangVersion>8.0</LangVersion>
Ce que je ne peux pas comprendre, c'est pourquoi une machine se construit bien sans cette ligne .csproj
et que l'autre machine en a besoin?
dotnet --list-sdks
montre-t-on?.NET Framework 4.6.1
etLangVersion
n'est pas défini.Réponses:
J'ai reçu la même erreur, mais j'avais simplement oublié d'inclure le
attribut dans TOUS les fichiers .csproj de la solution. Ce qui suit est ma configuration c # 8 actuelle:
J'ai trouvé que les documents suivants étaient les plus utiles lors de la migration du noyau 2.2 vers 3.x:
MSDN 2.2 -> 3.0
MSDN 3.0 -> 3.1
la source
<LangVersion>latest</LangVersion>
place de<LangVersion>8.0</LangVersion>
MSDN 2.2 -> 3.0
est destiné à créer un lien vers ce qui suit: docs.microsoft.com/en-us/aspnet/core/migration/22-to-30 J'ai essayé de modifier la réponse pour la modifier, mais "suggéré la file d'attente de modification est plein ", donc je posterai ici à la place.J'ai dû mettre à jour Visual Studio vers la version 16.3.X à 16.4.2. Cela a résolu le problème et je n'ai pas eu à ajouter de LangVersion.
Crédits: https://github.com/aspnet/AspNetCore.Docs/issues/16047
la source
Cela peut être dû au fait que le compilateur utilise par défaut différentes versions du langage C # pour différents cadres cibles.
Pour remplacer le langage C # par défaut, ajoutez au fichier de projet (comme suggéré dans la question):
ou:
Voir Versionnage du langage C # pour les versions du langage C # par défaut pour les différents frameworks cibles et comment sélectionner manuellement la version du langage C #.
Voir aussi la réponse de débordement de pile. C # 8 prend-il en charge le .NET Framework? pour plus d'informations sur ce sujet.
Voici une partie de l' article de versioning en langage C # :
Versionnage du langage C #
Le dernier compilateur C # détermine une version de langage par défaut en fonction du cadre ou des cadres cibles de votre projet. Cela est dû au fait que le langage C # peut avoir des fonctionnalités qui dépendent de types ou de composants d'exécution qui ne sont pas disponibles dans chaque implémentation .NET. Cela garantit également que, quelle que soit la cible de votre projet, vous obtenez la version linguistique compatible la plus élevée par défaut.
Les règles de cet article s'appliquent au compilateur fourni avec Visual Studio 2019 ou le SDK .NET Core 3.0. Les compilateurs C # qui font partie de l'installation de Visual Studio 2017 ou des versions antérieures du SDK .NET Core ciblent C # 7.0 par défaut.
Valeurs par défaut
Le compilateur détermine une valeur par défaut en fonction de ces règles:
Remplacer une valeur par défaut
Si vous devez spécifier explicitement votre version C #, vous pouvez le faire de plusieurs manières:
Modifier le fichier de projet
Vous pouvez définir la version linguistique dans votre fichier de projet. Par exemple, si vous souhaitez explicitement accéder aux fonctionnalités d'aperçu, ajoutez un élément comme celui-ci:
La valeur
preview
utilise la dernière version disponible en langage C # d'aperçu prise en charge par votre compilateur.Configurer plusieurs projets
Pour configurer plusieurs projets, vous pouvez créer un fichier Directory.Build.props qui contient l'
<LangVersion>
élément. Vous le faites généralement dans votre répertoire de solutions. Ajoutez ce qui suit à un fichier Directory.Build.props dans le répertoire de votre solution:Désormais, les builds dans chaque sous-répertoire du répertoire contenant ce fichier utiliseront la version C # de prévisualisation. Pour plus d'informations, consultez l'article sur Personnaliser votre build .
la source
J'ai téléchargé la dernière version de .Net Core 3.0 et 3.1 et j'ai eu le même problème. Pour moi, le correctif semblait télécharger la dernière mise à jour de Visual Studio 2019 (vers la version 16.4.2).
Cela a également redémarré mon ordinateur et l'erreur a disparu.
la source