Los paquetes de motor de plantilla ya no admiten netstandard2.0

Los paquetes NuGet del motor de plantillas del SDK de .NET ya no tienen como destino netstandard2.0. Los proyectos que consumieron estos paquetes a través del netstandard2.0 destino y que no tienen como destino uno de los marcos restantes ya no pueden usarlos.

Versión introducida

.NET 11 preview 4

Comportamiento anterior

Anteriormente, para permitir su consumo desde proyectos dirigidos a .NET Standard 2.0 (incluidos .NET Framework 4.6.1+ y .NET Core 2.0+), los siguientes paquetes incluían el target netstandard2.0:

Nuevo comportamiento

A partir de .NET 11, estos paquetes solo tienen como destino net9.0, net11.0 y net472. Los proyectos que anteriormente consumieron estos paquetes a través del netstandard2.0 destino y que no tienen como destino uno de estos marcos restantes ya no pueden hacer referencia a estos paquetes.

Tipo de cambio disruptivo

Este cambio puede afectar a la compatibilidad de origen y la compatibilidad binaria.

Motivo del cambio

Los paquetes del SDK cliente de NuGet (NuGet.*) dejaron de ser compatibles con netstandard2.0 a partir de la versión 7.0. Microsoft.TemplateEngine.Edge depende de los paquetes NuGet (NuGet.Configuration, NuGet.Credentials y NuGet.Protocol), lo que dificultaba cada vez más el mantenimiento de netstandard2.0 compatibilidad. Para evitar conflictos de dependencia transitiva, el proyecto tenía que anclar estos paquetes a versiones anteriores y deshabilitar CentralPackageTransitivePinningEnabled. Eliminar netstandard2.0 elimina esta restricción y permite que los paquetes se mantengan actualizados con sus dependencias.

Para obtener más contexto, vea dotnet/sdk#54041.

Actualice el proyecto consumidor para que tenga como destino net9.0 o una versión posterior, o net472 o una versión posterior (.NET Framework). Si dependía del destino netstandard2.0 para consumir estos paquetes desde una biblioteca de clases de .NET Standard, cambie el destino de esa biblioteca a uno de los frameworks compatibles.

Las APIs afectadas

Todas las API públicas de los paquetes afectados siguen siendo las mismas. Solo han cambiado las plataformas de destino admitidas.