Freigeben über


C#-Code in Vorlagen, die von früheren Versionen nicht unterstützt werden

Ab .NET 6 verwenden die Projektvorlagen, die mit dem .NET SDK ausgeliefert werden, die neuesten C#-Sprachfeatures. Die folgenden Sprachfeatures werden im vom Vorlagen generierten Code verwendet oder standardmäßig im Projekt aktiviert:

Einige der neuesten C#-Sprachfeatures werden von früheren Zielframeworks nicht unterstützt, sodass probleme in den folgenden Szenarien auftreten können:

  • Wenn Sie eine .NET 6-Vorlage verwenden und dann das Zielframework in eine frühere Version ändern.
  • Wenn Sie ein .NET 6 Template verwenden und dann ein mehrfaches Targeting durchführen, indem Sie eine frühere Zielframework-Version hinzufügen.

Eingeführte 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

Ab .NET 6 müssen Sie beim Ändern oder Hinzufügen eines Zielframeworks 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 führen Sie in der Regel dazu, wie Sie den generierten Code ändern, um ihn mit dem neuen Zielframework kompatibel zu machen.

Kategorie ändern

Diese Änderung wirkt sich auf die Quellkompatibilität aus.

Grund für Änderung

Wir möchten, dass die Projektvorlagen mit den neuesten Sprachfeatures synchronisiert werden. Das Hauptverwendungsszenario für die Zielbestimmung des neuesten Frameworks verwendet die neuesten C#-Sprachfeatures.

Wenn Sie bei der Umstellung auf eine frühere Frameworkversion auf Kompilierungsfehler und Warnungen stoßen, nutzen Sie diese Informationen, um den generierten Code so zu ändern, dass er mit dem ausgewählten Ziel-Framework kompatibel ist.

Befolgen Sie die folgenden Vorschläge, um Kompilierungszeitfehler bei der Ausrichtung auf ein älteres Framework zu vermeiden:

  • Vermeiden Sie das Ändern des Zielframeworks in eine frühere Version. Wählen Sie stattdessen das Zielframework aus, das Sie während der Projekterstellung in Visual Studio oder in der Befehlszeile verwenden möchten dotnet new <templateName> --framework <targetFramework>.
  • Wählen Sie beim Erstellen eines Multizielprojekts die niedrigste Zielframeworkversion aus, wenn Sie das Projekt erstellen. Fügen Sie die zusätzlichen Zielframeworks hinzu, nachdem das Projekt erstellt wurde.

Betroffene APIs

Nicht verfügbar