Code C# dans les modèles non pris en charge par les versions antérieures
À compter de .NET 6, les modèles de projets fournis avec le Kit de développement logiciel (SDK).NET utilisent les dernières fonctionnalités du langage C#. Les fonctionnalités de langage suivantes sont utilisées dans le code généré par un modèle ou activées par défaut dans le projet :
- Instructions de niveau supérieur
- Général avec directives
- Espaces de noms limités aux fichiers
- Nouvelles expressions typées cibles
- Types références Nullables
- Valeurs de retour d’Async Main
Certaines des dernières fonctionnalités du langage C# ne sont pas prises en charge par les versions cibles de .Net Framework précédentes, vous pouvez donc rencontrer des problèmes dans les scénarios suivants :
- Lorsque vous utilisez un modèle .NET 6, puis que vous remplacez le version cible de .Net Framework par une version précédente.
- Lorsque vous utilisez un modèle .NET 6, puis multi-cible en ajoutant une version cible de .Net Framework précédente.
Version introduite
Kit de développement logiciel (SDK) .NET 6.0.100
Ancien comportement
Dans les versions .NET précédentes, vous pouvez remplacer la version cible de .Net Framework par une version précédente ou ajouter une version supplémentaire sans avoir à modifier le code C# créé par le modèle de projet.
Nouveau comportement
À compter de .NET 6, lorsque vous modifiez ou ajoutez une version cible de .Net Framework, vous devrez peut-être modifier le code C# généré par le modèle pour éviter d’utiliser des fonctionnalités de langage non prises en charge. Le projet ne sera pas généré sans ces changements. Les erreurs et avertissements du compilateur vous guident généralement sur la façon de modifier le code généré pour le rendre compatible avec la nouvelle version cible de .Net Framework.
Modifier la catégorie
Ce changement affecte la compatibilité de la source.
Raison du changement
Nous voulons que les modèles de projet soient synchronisés avec les dernières fonctionnalités de langage. Le scénario d’utilisation principal du ciblage de la dernière infrastructure utilise les dernières fonctionnalités du langage C#.
Action recommandée
Si vous rencontrez des erreurs et des avertissements de compilation lors du nouveau ciblage vers une version cible de .Net Framework antérieure, utilisez ces informations pour vous guider dans le changement de code généré afin de le rendre compatible avec la version cible de .Net Framework que vous avez sélectionnée.
Pour éviter les erreurs de compilation lors du ciblage d’une infrastructure plus ancienne, suivez ces suggestions :
- Évitez de remplacer la version cible de .Net Framework par une version précédente. Au lieu de cela, sélectionnez la version cible de .Net Framework souhaitée lors de la création du projet dans Visual Studio ou sur la ligne de commande à l’aide de
dotnet new <templateName> --framework <targetFramework>
. - Lors de la création d’un projet multi-cibles, sélectionnez la version cible inférieure de .Net Framework lors de la création du projet. Ajoutez les versions cibles de .Net Framework supplémentaires après la création du projet.
API affectées
N/A