Sdílet prostřednictvím


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é:

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#.

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