.NET SDK 模板引擎 NuGet 套件不再針對 netstandard2.0。 透過 netstandard2.0 目標使用這些套件,且未以其餘任何一種架構為目標的專案,將無法再使用這些套件。
所推出的版本
.NET 11 預覽版 4
以前的行為
過去,為了支援以 .NET Standard 2.0 為目標的專案使用(包括 .NET Framework 4.6.1+ 和 .NET Core 2.0+),下列套件包含 netstandard2.0 目標:
Microsoft.TemplateEngine.AbstractionsMicrosoft.TemplateEngine.CoreMicrosoft.TemplateEngine.Core.ContractsMicrosoft.TemplateEngine.EdgeMicrosoft.TemplateEngine.Orchestrator.RunnableProjectsMicrosoft.TemplateEngine.UtilsMicrosoft.TemplateEngine.IDEMicrosoft.TemplateLocalizer.Core
新行為
從 .NET 11 開始,這些封裝只針對 net9.0、net11.0 和 net472。 先前透過 netstandard2.0 目標使用這些套件,且目標並非這些剩餘架構之一的專案,將無法再參考這些套件。
破壞性變更的類型
變更的原因
NuGet 客戶端 SDK 套件 (NuGet.*) 自 7.0 版開始不再以 netstandard2.0 為目標。
Microsoft.TemplateEngine.Edge 依賴 NuGet 套件(NuGet.Configuration、NuGet.Credentials 和 NuGet.Protocol),這使得維持 netstandard2.0 相容性變得越來越困難。 為了避免傳遞相依性衝突,該專案不得不將這些套件固定在較舊的版本,並停用 CentralPackageTransitivePinningEnabled。 丟棄 netstandard2.0 則移除了這個限制,讓套件能保持其相依性的最新狀態。
更多背景資訊請參見 dotnet/sdk#54041。
建議的動作
更新使用中的專案,將目標設為 net9.0 或更新版本,或 net472 或更新版本(.NET Framework)。 如果你依賴 netstandard2.0 目標來從 .NET Standard 類別函式庫中擷取這些套件,請將該函式庫重新定位到支援的框架之一。
受影響的 API
受影響套件中的所有公開 API 都保持不變。 只有支援的目標框架有所變動。