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:

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.

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