範本中的 C# 程式碼不受舊版支援
從 .NET 6 開始,隨附於 .NET SDK 的專案範本使用最新的 C# 語言功能。 下列語言功能用於範本產生的程式碼,或在專案中預設啟用:
先前的目標 Framework 不支援某些最新的 C# 語言功能,因此您可能會在下列情況下遇到問題:
- 當您使用 .NET 6 範本,然後將目標 Framework 變更為舊版時。
- 當您使用 .NET 6 範本,然後藉由新增先前的目標 Framework 版本來設定多重目標時。
導入的版本
.NET SDK 6.0.100
舊的行為
在之前的 .NET 版本中,您可以將目標 Framework 變更為舊版,或新增其他版本,而不需要變更專案範本所建立的 C# 程式碼。
新的行為
從 .NET 6 開始,當您變更或新增目標 Framework 時,您可能需要變更範本所產生的 C# 程式碼,以避免使用不支援的語言功能。 專案不會在沒有這些變更的情況下建置。 編譯器錯誤和警告通常會引導您如何變更產生的程式碼,使其與新的目標 Framework 相容。
變更類別
此變更會影響來源相容性。
變更原因
我們希望專案範本與最新的語言功能同步。 以最新架構為目標的主要使用案例會使用最新的 C# 語言功能。
建議的動作
如果您在將目標重新設定為舊版架構時遇到編譯時期錯誤和警告,請使用該資訊來引導您變更產生的程式碼,使其與選取的目標 Framework 相容。
若要避免以舊架構為目標時發生編譯時期錯誤,請遵循下列建議:
- 避免將目標 Framework 變更為前一版。 請改為在 Visual Studio 中建立專案時選取目標 Framework,或在命令列使用
dotnet new <templateName> --framework <targetFramework>
來選取。 - 建立多目標專案時,請在建立專案時選取最低目標 Framework 版本。 在建立專案之後新增其他目標 Framework。
受影響的 API
N/A