C#-Code in Vorlagen, die von früheren Versionen nicht unterstützt werden
Ab .NET 6 verwenden die Projektvorlagen, die im .NET SDK enthalten sind, die neuesten C#-Sprachfeatures. Die folgenden Sprachfeatures werden in vorlagengeneriertem Code verwendet oder standardmäßig im Projekt aktiviert:
- Top-Level-Anweisungen
- Globale using-Anweisungen
- Dateibereichsnamespaces
- Zieltypisierte neue Ausdrücke
- Nullwerte zulassende Verweistypen
- Asynchrone Hauptrückgabewerte
Einige der neuesten C#-Sprachfeatures werden von früheren Zielframeworks nicht unterstützt, sodass in den folgenden Szenarien Probleme auftreten können:
- Wenn Sie eine .NET 6-Vorlage verwenden und dann das Zielframework in eine frühere Version ändern.
- Wenn Sie eine .NET 6-Vorlage und dann mehrere Ziele verwenden, indem Sie eine frühere Zielframeworkversion hinzufügen.
Eingeführt in Version
.NET SDK 6.0.100
Altes Verhalten
In früheren .NET-Versionen können Sie das Zielframework in eine frühere Version ändern oder eine zusätzliche Version hinzufügen, ohne den von der Projektvorlage erstellten C#-Code ändern zu müssen.
Neues Verhalten
Wenn Sie ab .NET 6 ein Zielframework ändern oder hinzufügen, müssen Sie möglicherweise den von der Vorlage generierten C#-Code ändern, um die Verwendung nicht unterstützter Sprachfeatures zu vermeiden. Das Projekt wird ohne diese Änderungen nicht erstellt. Die Compilerfehler und -warnungen leiten Sie in der Regel an, wie Sie den generierten Code ändern müssen, um ihn mit dem neuen Zielframework kompatibel zu machen.
Ändern der Kategorie
Diese Änderung kann sich auf die Quellkompatibilität auswirken.
Grund für die Änderung
Wir möchten, dass die Projektvorlagen mit den neuesten Sprachfeatures synchronisiert werden. Das Hauptnutzungsszenario für die Ausrichtung auf das neueste Framework verwendet die neuesten C#-Sprachfeatures.
Empfohlene Maßnahme
Wenn Sie bei der Neuausrichtung auf eine frühere Frameworkversion auf Kompilierfehler und Warnungen stoßen, nutzen Sie diese Informationen als Anleitung, um den generierten Code so zu ändern, dass er mit dem von Ihnen ausgewählten Zielframework kompatibel ist.
Befolgen Sie die folgenden Vorschläge, um Kompilierfehler bei der Ausrichtung auf ein älteres Framework zu vermeiden:
- Vermeiden Sie es, das Zielframework in eine frühere Version zu ändern. Wählen Sie stattdessen das Zielframework aus, das Sie bei der Projekterstellung in Visual Studio oder in der Befehlszeile mithilfe von
dotnet new <templateName> --framework <targetFramework>
auswählen. - Wenn Sie ein Projekt mit mehreren Zielen erstellen, wählen Sie beim Erstellen des Projekts die niedrigste Version des Zielframeworks aus. Fügen Sie die zusätzlichen Zielframeworks nach dem Erstellen des Projekts hinzu.
Betroffene APIs
–