Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
The .NET SDK template engine NuGet packages no longer target netstandard2.0. Projects that consumed these packages via the netstandard2.0 target and don't target one of the remaining frameworks can no longer use them.
Version introduced
.NET 11 Preview 4
Previous behavior
Previously, to support consumption from projects targeting .NET Standard 2.0 (including .NET Framework 4.6.1+ and .NET Core 2.0+), the following packages included a netstandard2.0 target:
Microsoft.TemplateEngine.AbstractionsMicrosoft.TemplateEngine.CoreMicrosoft.TemplateEngine.Core.ContractsMicrosoft.TemplateEngine.EdgeMicrosoft.TemplateEngine.Orchestrator.RunnableProjectsMicrosoft.TemplateEngine.UtilsMicrosoft.TemplateEngine.IDEMicrosoft.TemplateLocalizer.Core
New behavior
Starting in .NET 11, these packages only target net9.0, net11.0, and net472. Projects that previously consumed these packages via the netstandard2.0 target and don't target one of these remaining frameworks can no longer reference these packages.
Type of breaking change
This change can affect source compatibility and binary compatibility.
Reason for change
NuGet client SDK packages (NuGet.*) stopped targeting netstandard2.0 starting with version 7.0. Microsoft.TemplateEngine.Edge depends on NuGet packages (NuGet.Configuration, NuGet.Credentials, and NuGet.Protocol), which made it increasingly difficult to maintain netstandard2.0 compatibility. To avoid transitive dependency conflicts, the project had to pin these packages to older versions and disable CentralPackageTransitivePinningEnabled. Dropping netstandard2.0 removes this constraint and allows the packages to stay current with their dependencies.
For more context, see dotnet/sdk#54041.
Recommended action
Update your consuming project to target net9.0 or later, or net472 or later (.NET Framework). If you relied on the netstandard2.0 target to consume these packages from a .NET Standard class library, retarget that library to one of the supported frameworks.
Affected APIs
All public APIs in the affected packages remain the same. Only the supported target frameworks have changed.