Kod języka C# w szablonach nieobsługiwany przez wcześniejsze wersje
Począwszy od platformy .NET 6, szablony projektów dostarczane z zestawem .NET SDK używają najnowszych funkcji języka C#. Następujące funkcje językowe są używane w kodzie generowanym przez szablon lub domyślnie włączone w projekcie:
- Instrukcje najwyższego poziomu
- Globalne dyrektywy using
- Przestrzenie nazw o zakresie plików
- Nowe wyrażenia w typie docelowym
- Typy referencyjne dopuszczające wartość null
- Async Main zwracane wartości
Niektóre z najnowszych funkcji języka C# nie są obsługiwane przez poprzednie struktury docelowe, więc mogą wystąpić problemy w następujących scenariuszach:
- Gdy używasz szablonu platformy .NET 6, a następnie zmieniasz strukturę docelową na poprzednią wersję.
- Jeśli używasz szablonu platformy .NET 6, a następnie wielokierunkowego, dodając poprzednią wersję platformy docelowej.
Wprowadzona wersja
Zestaw .NET SDK 6.0.100
Stare zachowanie
W poprzednich wersjach platformy .NET można zmienić strukturę docelową na poprzednią wersję lub dodać dodatkową wersję bez konieczności zmiany kodu C# utworzonego przez szablon projektu.
Nowe zachowanie
Począwszy od platformy .NET 6, po zmianie lub dodaniu platformy docelowej może być konieczne zmianę kodu języka C# wygenerowanego przez szablon, aby uniknąć używania nieobsługiwanych funkcji językowych. Projekt nie będzie kompilować bez tych zmian. Błędy i ostrzeżenia kompilatora zwykle prowadzą do zmiany wygenerowanego kodu, aby był zgodny z nową strukturą docelową.
Kategoria zmiany
Ta zmiana ma wpływ na zgodność ze źródłem.
Przyczyna wprowadzenia zmiany
Chcemy zsynchronizować szablony projektów z najnowszymi funkcjami językowymi. Główny scenariusz użycia przeznaczony dla najnowszej platformy korzysta z najnowszych funkcji języka C#.
Zalecana akcja
Jeśli wystąpią błędy i ostrzeżenia dotyczące kompilacji podczas ponownego pobierania do starszej wersji platformy, skorzystaj z tych informacji, aby ułatwić zmianę wygenerowanego kodu w celu zapewnienia zgodności z wybraną strukturą docelową.
Aby uniknąć błędów czasu kompilacji podczas określania celu starszej platformy, postępuj zgodnie z następującymi sugestiami:
- Unikaj zmieniania struktury docelowej na poprzednią wersję. Zamiast tego wybierz odpowiednią strukturę docelową podczas tworzenia projektu w programie Visual Studio lub w wierszu polecenia przy użyciu polecenia
dotnet new <templateName> --framework <targetFramework>
. - Podczas tworzenia projektu z wieloma elementami docelowymi wybierz najniższą wersję platformy docelowej podczas tworzenia projektu. Dodaj dodatkowe struktury docelowe po utworzeniu projektu.
Dotyczy interfejsów API
Nie dotyczy