Marcos de destino

NuGet usa referencias de marcos de destino en varios lugares para identificar y aislar de forma específica los componentes de un paquete que dependen del marco:

  • Archivo de proyecto: para los proyectos de estilo SDK, .csproj contiene las referencias de la plataforma de destino.
  • Manifiesto .nuspec: un paquete puede indicar que se incluyan distintos paquetes en un proyecto en función de la plataforma de destino del proyecto.
  • Nombre de la carpeta .nupkg: las carpetas que están dentro de la carpeta lib de un paquete se pueden denominar según la plataforma de destino, cada una de las cuales contiene los archivos DLL y otro contenido adecuado para esa plataforma.
  • packages.config: el atributo targetframework de una dependencia especifica la variante de un paquete que se va a instalar.

Nota:

NuGet admite todas las plataformas de destino de .NET modernas:

Marcos de trabajo admitidos

A una plataforma normalmente se hace referencia mediante un moniker corto de la plataforma de destino o TFM. En .NET Standard, esto también se ha generalizado a TxM para permitir una sola referencia a varios marcos.

Nota:

El código fuente del cliente de NuGet que calcula las siguientes tablas se encuentra en las siguientes ubicaciones:

Los clientes de NuGet admiten las plataformas indicadas en la tabla siguiente. Los equivalentes se muestran entre corchetes []. Tenga en cuenta que es posible que algunas herramientas, como dotnet, usen variaciones de TFM canónicos en algunos archivos. Por ejemplo, dotnet pack usa .NETCoreApp2.0 en un archivo .nuspec en lugar de netcoreapp2.0. Las distintas herramientas del cliente de NuGet controlan estas variaciones sin problema, pero siempre debe usar TFM canónicos al editar archivos directamente.

Nombre Abreviatura TFMs/TxMs
.NET Framework net net11
net20
net35
net40
net403
net45
net451
net452
net46
net461
net462
net47
net471
net472
net48
Microsoft Store (Tienda Windows) netcore netcore [netcore45]
netcore45 [win, win8]
netcore451 [win81]
netcore50
.NET MicroFramework netmf netmf
Windows win win [win8, netcore45]
win8 [netcore45, win]
win81 [netcore451]
win10 (no compatible con la plataforma de Windows 10)
Silverlight sl sl4
sl5
Windows Phone (SL) wp wp [wp7]
wp7
wp75
wp8
wp81
Windows Phone (UWP) wpa81
Plataforma universal de Windows uap uap [uap10.0]
uap10.0
uap10.0.xxxxx (donde 10.0.xxxxx es la versión mínima de la plataforma de destino de la aplicación de consumo)
.NET Standard netstandard netstandard1.0
netstandard1.1
netstandard1.2
netstandard1.3
netstandard1.4
netstandard1.5
netstandard1.6
netstandard2.0
netstandard2.1
.NET 5+ (y .NET Core) netcoreapp netcoreapp1.0
netcoreapp1.1
netcoreapp2.0
netcoreapp2.1
netcoreapp2.2
netcoreapp3.0
netcoreapp3.1
net net5.0
net6.0
net7.0
net8.0
Tizen tizen tizen3
tizen4
Nativo nativas nativas

Marcos de trabajo en desuso

Los marcos de trabajo siguientes están en desuso. Los paquetes destinados a estos marcos de trabajo deben migrarse a los reemplazos indicados.

Marco de trabajo en desuso Replacement
aspnet50 netcoreapp
aspnetcore50
dnxcore50
dnx
dnx45
dnx451
dnx452
dotnet netstandard
dotnet50
dotnet51
dotnet52
dotnet53
dotnet54
dotnet55
dotnet56
winrt win

Prioridad

Hay una serie de plataformas relacionadas y compatibles entre sí, pero no necesariamente equivalentes:

marco Puede usar
uap (Plataforma universal de Windows) win81
wpa81
netcore50
win (Microsoft Store) winrt

NET Standard

.NET Standard simplifica las referencias entre marcos compatibles con binarios, lo que permite que un solo marco de destino haga referencia a una combinación de otros. (Para obtener información, vea el manual de .NET).

La herramienta de NuGet Get Nearest Framework simula lo que usa NuGet para seleccionar una plataforma entre los muchos recursos de plataformas disponibles en un paquete en función de la plataforma del proyecto.

La serie de monikers dotnet se debe usar en NuGet 3.3 y en versiones anteriores, mientras que la sintaxis de moniker netstandard se debe usar en la versión 3.4 y en versiones posteriores.

Bibliotecas de clases portables

Advertencia

No se recomiendan las PCL. Aunque se admiten las PCL, los autores de paquetes deben admitir .NET Standard. .NET Platform Standard es una evolución de las PCL y representa la portabilidad de archivos binarios entre plataformas mediante un moniker único que no está vinculado a ningún elemento estático, como los monikers portátil-a+b+c.

Para definir una plataforma de destino que haga referencia a varias plataformas de destino secundarias, use la palabra clave portable para prefijar la lista de las plataformas a las que se hace referencia. Evite incluir artificialmente plataformas adicionales que no estén directamente compiladas, ya que puede provocar efectos secundarios imprevistos en esas plataformas.

Las plataformas adicionales definidas por terceros proporcionan compatibilidad con otros entornos que son accesibles de este modo. Además, existen números de perfil abreviados disponibles para hacer referencia a estas combinaciones de plataformas relacionadas como Profile#, pero no es una práctica recomendada para usar estos números, ya que reduce la legibilidad de las carpetas y de .nuspec.

Número de perfil Marcos de trabajo Nombre completo .NET Standard
Perfil2 .NET Framework 4.0 portable-net40+win8+sl4+wp7
Windows 8.0
Silverlight 4.0
Windows Phone 7.0
Perfil3 .NET Framework 4.0 portable-net40+sl4
Silverlight 4.0
Perfil4 .NET Framework 4.5 portable-net45+sl4+win8+wp7
Silverlight 4.0
Windows 8.0
Windows Phone 7.0
Perfil5 .NET Framework 4.0 portable-net40+win8
Windows 8.0
Perfil6 .NET Framework 4.0.3 portable-net403+win8
Windows 8.0
Profile7 .NET Framework 4.5 portable-net45+win8 netstandard1.1
Windows 8.0
Perfil14 .NET Framework 4.0 portable-net40+sl5
Silverlight 5.0
Perfil18 .NET Framework 4.0.3 portable-net403+sl4
Silverlight 4.0
Perfil19 .NET Framework 4.0.3 portable-net403+sl5
Silverlight 5.0
Perfil23 .NET Framework 4.5 portable-net45+sl4
Silverlight 4.0
Perfil24 .NET Framework 4.5 portable-net45+sl5
Silverlight 5.0
Profile31 Windows 8.1 portable-win81+wp81 netstandard1.0
Windows Phone 8.1 (SL)
Profile32 Windows 8.1 portable-win81+wpa81 netstandard1.2
WindowsPhone 8.1 (UWP)
Perfil36 .NET Framework 4.0 portable-net40+sl4+win8+wp8
Silverlight 4.0
Windows 8.0
WindowsPhone 8.0 (SL)
Perfil37 .NET Framework 4.0 portable-net40+sl5+win8
Silverlight 5.0
Windows 8.0
Perfil41 .NET Framework 4.0.3 portable-net403+sl4+win8
Silverlight 4.0
Windows 8.0
Perfil42 .NET Framework 4.0.3 portable-net403+sl5+win8
Silverlight 5.0
Windows 8.0
Profile44 .NET Framework 4.5.1 portable-net451+win81 netstandard1.2
Windows 8.1
Perfil46 .NET Framework 4.5 portable-net45+sl4+win8
Silverlight 4.0
Windows 8.0
Perfil47 .NET Framework 4.5 portable-net45+sl5+win8
Silverlight 5.0
Windows 8.0
Profile49 .NET Framework 4.5 portable-net45+wp8 netstandard1.0
WindowsPhone 8.0 (SL)
Profile78 .NET Framework 4.5 portable-net45+win8+wp8 netstandard1.0
Windows 8.0
WindowsPhone 8.0 (SL)
Profile84 Windows Phone 8.1 portable-wp81+wpa81 netstandard1.0
WindowsPhone 8.1 (UWP)
Perfil88 .NET Framework 4.0 portable-net40+sl4+win8+wp75
Silverlight 4.0
Windows 8.0
Windows Phone 7.5
Perfil92 .NET Framework 4.0 portable-net40+win8+wpa81
Windows 8.0
WindowsPhone 8.1 (UWP)
Perfil95 .NET Framework 4.0.3 portable-net403+sl4+win8+wp7
Silverlight 4.0
Windows 8.0
Windows Phone 7.0
Perfil96 .NET Framework 4.0.3 portable-net403+sl4+win8+wp75
Silverlight 4.0
Windows 8.0
Windows Phone 7.5
Perfil102 .NET Framework 4.0.3 portable-net403+win8+wpa81
Windows 8.0
WindowsPhone 8.1 (UWP)
Perfil104 .NET Framework 4.5 portable-net45+sl4+win8+wp75
Silverlight 4.0
Windows 8.0
Windows Phone 7.5
Profile111 .NET Framework 4.5 portable-net45+win8+wpa81 netstandard1.1
Windows 8.0
WindowsPhone 8.1 (UWP)
Perfil136 .NET Framework 4.0 portable-net40+sl5+win8+wp8
Silverlight 5.0
Windows 8.0
WindowsPhone 8.0 (SL)
Perfil143 .NET Framework 4.0.3 portable-net403+sl4+win8+wp8
Silverlight 4.0
Windows 8.0
WindowsPhone 8.0 (SL)
Perfil147 .NET Framework 4.0.3 portable-net403+sl5+win8+wp8
Silverlight 5.0
Windows 8.0
WindowsPhone 8.0 (SL)
Profile151 .NET Framework 4.5.1 portable-net451+win81+wpa81 netstandard1.2
Windows 8.1
WindowsPhone 8.1 (UWP)
Perfil154 .NET Framework 4.5 portable-net45+sl4+win8+wp8
Silverlight 4.0
Windows 8.0
WindowsPhone 8.0 (SL)
Profile157 Windows 8.1 portable-win81+wp81+wpa81 netstandard1.0
Windows Phone 8.1 (SL)
WindowsPhone 8.1 (UWP)
Perfil158 .NET Framework 4.5 portable-net45+sl5+win8+wp8
Silverlight 5.0
Windows 8.0
WindowsPhone 8.0 (SL)
Perfil225 .NET Framework 4.0 portable-net40+sl5+win8+wpa81
Silverlight 5.0
Windows 8.0
WindowsPhone 8.1 (UWP)
Perfil240 .NET Framework 4.0.3 portable-net403+sl5+win8+wpa8
Silverlight 5.0
Windows 8.0
WindowsPhone 8.1 (UWP)
Perfil255 .NET Framework 4.5 portable-net45+sl5+win8+wpa81
Silverlight 5.0
Windows 8.0
WindowsPhone 8.1 (UWP)
Profile259 .NET Framework 4.5 portable-net45+win8+wpa81+wp8 netstandard1.0
Windows 8.0
WindowsPhone 8.1 (UWP)
WindowsPhone 8.0 (SL)
Perfil328 .NET Framework 4.0 portable-net40+sl5+win8+wpa81+wp8
Silverlight 5.0
Windows 8.0
WindowsPhone 8.1 (UWP)
WindowsPhone 8.0 (SL)
Perfil336 .NET Framework 4.0.3 portable-net403+sl5+win8+wpa81+wp8
Silverlight 5.0
Windows 8.0
WindowsPhone 8.1 (UWP)
WindowsPhone 8.0 (SL)
Perfil344 .NET Framework 4.5 portable-net45+sl5+win8+wpa81+wp8
Silverlight 5.0
Windows 8.0
WindowsPhone 8.1 (UWP)
WindowsPhone 8.0 (SL)

Además, los paquetes de NuGet que tienen como destino Xamarin pueden usar otras plataformas definidas por Xamarin. Vea Manually Creating NuGet Packages for Xamarin (Crear manualmente paquetes de NuGet para Xamarin).

Nombre Descripción .NET Standard
monoandroid Soporte mono para el sistema operativo Android netstandard1.4
monotouch Soporte mono para iOS netstandard1.4
monomac Soporte mono para OSX netstandard1.4
xamarinios Compatibilidad con Xamarin para iOS netstandard1.4
xamarinmac Compatibilidad con Xamarin para Mac netstandard1.4
xamarinpsthree Compatibilidad con Xamarin en Playstation 3 netstandard1.4
xamarinpsfour Compatibilidad con Xamarin en Playstation 4 netstandard1.4
xamarinpsvita Compatibilidad con Xamarin en PS Vita netstandard1.4
xamarinwatchos Xamarin para watchOS netstandard1.4
xamarintvos Xamarin para tvOS netstandard1.4
xamarinxboxthreesixty Xamarin para XBox 360 netstandard1.4
xamarinxboxone Xamarin para XBox One netstandard1.4

Nota:

Stephen Cleary ha creado una herramienta que muestra las PCL admitidas, que encontrará en su publicación Framework profiles in .NET (Perfiles de plataformas en .NET).