Pakiety silnika szablonów nie obsługują już platformy netstandard2.0

Pakiety NuGet aparatu szablonów zestawu SDK platformy .NET nie są już przeznaczone dla netstandard2.0. Projekty, które korzystały z tych pakietów poprzez obiekt docelowy netstandard2.0 i nie są ukierunkowane na jedną z pozostałych platform docelowych, nie mogą już z nich korzystać.

Wersja wprowadzona

.NET 11 (wersja zapoznawcza 4)

Poprzednie zachowanie

Wcześniej, aby umożliwić korzystanie z nich w projektach przeznaczonych dla platformy .NET Standard 2.0 (w tym .NET Framework 4.6.1+ i .NET Core 2.0+), następujące pakiety zawierały element docelowy netstandard2.0:

Nowe zachowanie

Począwszy od .NET 11, te pakiety dotyczą tylko net9.0, net11.0 i net472. Projekty, które wcześniej korzystały z tych pakietów za pośrednictwem elementu docelowego netstandard2.0 i nie są ukierunkowane na żadną z tych pozostałych platform, nie mogą już odwoływać się do tych pakietów.

Typ zmiany przełamującej

Ta zmiana może mieć wpływ na zgodność źródła i zgodność binarną.

Przyczyna zmiany

Pakiety SDK klienta NuGet (NuGet.*) przestały być przeznaczone dla netstandard2.0 od wersji 7.0. Microsoft.TemplateEngine.Edge zależy od pakietów NuGet (NuGet.Configuration, NuGet.Credentials i NuGet.Protocol), co utrudniało utrzymanie zgodności netstandard2.0. Aby uniknąć konfliktów zależności przechodnich, projekt musiał przypisać te pakiety do starszych wersji na stałe i wyłączyć CentralPackageTransitivePinningEnabled. Porzucanie netstandard2.0 usuwa to ograniczenie i umożliwia pakietom pozostawanie na bieżąco z ich zależnościami.

Aby uzyskać więcej informacji na temat kontekstu, zobacz dotnet/sdk#54041.

Zaktualizuj projekt zużywany do docelowego net9.0 lub nowszego albo net472 lub nowszego (.NET Framework). Jeśli używasz elementu docelowego netstandard2.0, aby korzystać z tych pakietów z biblioteki klas .NET Standard, zmień platformę docelową tej biblioteki na jedną z obsługiwanych platform docelowych.

Interfejsy API, których dotyczy problem

Wszystkie publiczne interfejsy API w pakietach, których dotyczy problem, pozostają takie same. Zmieniły się tylko obsługiwane platformy docelowe.