Kód jazyka C# v šablonách, které dřívější verze nepodporují
Počínaje rozhraním .NET 6 používají šablony projektů, které se dodávají se sadou .NET SDK, nejnovější jazykové funkce jazyka C#. Následující jazykové funkce se používají v kódu generovaném šablonou nebo jsou ve výchozím nastavení v projektu povolené:
- Příkazy nejvyšší úrovně
- Globální direktivy using
- Obory názvů v oboru souborů
- Nové výrazy typu cíle
- Odkazové typy s možnou hodnotou null
- Asynchronní hlavní návratové hodnoty
Některé z nejnovějších jazykových funkcí jazyka C# nejsou podporovány předchozími cílovými architekturami, takže může docházet k problémům v následujících scénářích:
- Pokud použijete šablonu .NET 6 a pak změníte cílovou architekturu na předchozí verzi.
- Při použití šablony .NET 6 a následného vícecílového přidání předchozí verze cílové architektury.
Zavedená verze
.NET SDK 6.0.100
Staré chování
V předchozích verzích .NET můžete změnit cílovou architekturu na předchozí verzi nebo přidat další verzi, aniž byste museli změnit kód jazyka C# vytvořený šablonou projektu.
Nové chování
Počínaje rozhraním .NET 6 možná budete muset změnit kód jazyka C# vygenerovaný šablonou, abyste se vyhnuli používání nepodporovaných jazykových funkcí. Projekt se bez těchto změn nevytvoře. Chyby a upozornění kompilátoru vás obvykle provedou změnou vygenerovaného kódu, aby byl kompatibilní s novou cílovou architekturou.
Kategorie změny
Tato změna má vliv na kompatibilitu zdroje.
Důvod změny
Chceme, aby se šablony projektů synchronizovaly s nejnovějšími jazykovými funkcemi. Hlavní scénář použití cílení na nejnovější architekturu používá nejnovější jazykové funkce jazyka C#.
Doporučená akce
Pokud při opětovném cílení na starší verzi architektury narazíte na chyby a upozornění v době kompilace, použijte tyto informace, které vás provedou změnou vygenerovaného kódu, aby byl kompatibilní s vybranou cílovou architekturou.
Pokud se chcete vyhnout chybám při kompilaci při cílení na starší architekturu, postupujte podle těchto návrhů:
- Vyhněte se změně cílové architektury na předchozí verzi. Místo toho vyberte cílovou architekturu, kterou chcete použít při vytváření projektu v sadě Visual Studio nebo na příkazovém řádku pomocí
dotnet new <templateName> --framework <targetFramework>
. - Při vytváření projektu s více cíli vyberte při vytváření projektu nejnižší verzi cílové architektury. Po vytvoření projektu přidejte další cílové architektury.
Ovlivněná rozhraní API
–