Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
O NuGet usa referências de estrutura de destino em uma variedade de locais para identificar e isolar especificamente componentes dependentes da estrutura de um pacote:
- arquivo de projeto: para projetos no estilo SDK, o .csproj contém as referências da estrutura de destino.
- Manifesto .nuspec: um pacote pode indicar pacotes distintos a serem incluídos em um projeto, dependendo da estrutura de destino do projeto.
-
Nome da pasta .nupkg: as pastas dentro da pasta de
libum pacote podem ser nomeadas de acordo com a estrutura de destino, cada uma contendo as DLLs e outro conteúdo apropriado para essa estrutura. -
packages.config: o
targetframeworkatributo de uma dependência especifica a variante de um pacote a ser instalado.
Para obter a lista canônica de todas as estruturas de destino com suporte e sua sintaxe TFM, consulte as estruturas de destino em projetos no estilo SDK.
Os valores de TargetFramework são aliases
A TargetFramework propriedade em um arquivo de projeto é um nome amigável — um alias — que é convertido em uma identidade de estrutura canônica. O SDK do .NET executa essa tradução definindo o TargetFrameworkMoniker (TFM) e, quando aplicável, as TargetPlatformMoniker propriedades.
Por exemplo, quando você escreve <TargetFramework>net10.0-windows</TargetFramework>, o SDK do .NET converte isso em:
TargetFrameworkMoniker=.NETCoreApp,Version=v10.0TargetPlatformMoniker=Windows,Version=7.0
O NuGet usa essas propriedades de moniker — não a TargetFramework cadeia de caracteres — para verificações de compatibilidade de pacote. Isso significa que o TargetFramework valor em si pode ser qualquer cadeia de caracteres, desde que as propriedades do moniker sejam definidas corretamente. Por exemplo, o projeto a seguir é válido:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>banana</TargetFramework>
</PropertyGroup>
<PropertyGroup Condition=" '$(TargetFramework)' == 'banana' ">
<TargetFrameworkIdentifier>.NETCoreApp</TargetFrameworkIdentifier>
<TargetFrameworkVersion>v10.0</TargetFrameworkVersion>
<TargetFrameworkMoniker>.NETCoreApp,Version=v10.0</TargetFrameworkMoniker>
</PropertyGroup>
</Project>
Esse projeto restaura e cria para o .NET 10.0, mesmo que o TargetFramework valor seja banana. O SDK do .NET já depende desse mecanismo de aliasing para TFMs específicos do sistema operacional, como net8.0-ios e net8.0-android, em que o TFM curto é traduzido para o moniker completo com informações da plataforma.
Direcionamento múltiplo com estruturas duplicadas
A partir do NuGet 7.6 /.NET SDK 10.0.300, vários TargetFrameworks aliases podem ser resolvidos para a mesma estrutura efetiva. Isso permite cenários como builds multi-RID e direcionamento de extensão de várias versões. Para obter detalhes sobre como isso funciona com restauração, pacote, arquivos de bloqueio e referências de projeto, consulte Direcionamento de várias estruturas.
Estruturas com suporte
Uma estrutura normalmente é referenciada por um pequeno moniker de estrutura de destino ou TFM. No .NET Standard, isso também é generalizado no TxM para permitir uma única referência a várias estruturas.
Observação
O código-fonte do cliente NuGet que calcula as tabelas abaixo é encontrado nos seguintes locais:
- Nomes de estrutura com suporte: FrameworkConstants.cs
- Precedência e mapeamento da estrutura: DefaultFrameworkMappings.cs
Os clientes NuGet dão suporte às estruturas na tabela abaixo. Os equivalentes são mostrados entre colchetes []. Observe que algumas ferramentas, como dotnet, podem usar variações de TFMs canônicas em alguns arquivos. Por exemplo, dotnet pack usa em um .nuspec arquivo em vez de netcoreapp2.0.NETCoreApp2.0 . As várias ferramentas de cliente do NuGet lidam com essas variações corretamente, mas você sempre deve usar TFMs canônicas ao editar arquivos diretamente.
| Nome | Abreviação | TFMs/TxMs |
|---|---|---|
| .NET Framework | net | net11 |
| net20 | ||
| net35 | ||
| net40 | ||
| net403 | ||
| net45 | ||
| net451 | ||
| net452 | ||
| net46 | ||
| net461 | ||
| net462 | ||
| net47 | ||
| net471 | ||
| net472 | ||
| net48 | ||
| Microsoft Store (Windows Store) | netcore | netcore [netcore45] |
| netcore45 [win, win8] | ||
| netcore451 [win81] | ||
| netcore50 | ||
| MicroFramework do .NET | netmf | netmf |
| Windows | ganhar | win [win8, netcore45] |
| win8 [netcore45, win] | ||
| win81 [netcore451] | ||
| win10 (sem suporte da Plataforma Windows 10) | ||
| Silverlight | Sl | sl4 |
| sl5 | ||
| Windows Phone (SL) | Wp | wp [wp7] |
| wp7 | ||
| wp75 | ||
| wp8 | ||
| wp81 | ||
| Windows Phone (UWP) | wpa81 | |
| Plataforma Universal do Windows | Uap | uap [uap10.0] |
| uap10.0 | ||
| uap10.0.xxxxx (em que 10.0.xxxxx é a versão mínima da plataforma de destino do aplicativo 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+ (e .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 | ||
| net9.0 | ||
| net10.0 | ||
| Tizen | tizen | tizen3 |
| tizen4 | ||
| Native | nativo | nativo |
Estruturas preteridas
As estruturas a seguir são preteridas. Os pacotes direcionados a essas estruturas devem migrar para as substituições indicadas.
| Estrutura preterida | Substituição |
|---|---|
| aspnet50 | netcoreapp |
| aspnetcore50 | |
| dnxcore50 | |
| Dnx | |
| dnx45 | |
| dnx451 | |
| dnx452 | |
| dotnet | netstandard |
| dotnet50 | |
| dotnet51 | |
| dotnet52 | |
| dotnet53 | |
| dotnet54 | |
| dotnet55 | |
| dotnet56 | |
| winrt | ganhar |
Precedence
Várias estruturas estão relacionadas e compatíveis entre si, mas não necessariamente equivalentes:
| Framework | Pode usar |
|---|---|
| uap (Plataforma Universal do Windows) | Windows 8.1 |
| wpa81 | |
| netcore50 | |
| win (Microsoft Store) | winrt |
NET Standard
O .NET Standard simplifica as referências entre estruturas compatíveis com binários, permitindo que uma única estrutura de destino faça referência a uma combinação de outras. (Para obter plano de fundo, consulte o .NET Primer.)
A Ferramenta nuget Get Nearest Framework simula o que o NuGet usa para selecionar uma estrutura de muitos ativos de estrutura disponíveis em um pacote com base na estrutura do projeto.
A dotnet série de monikers deve ser usada no NuGet 3.3 e anterior; a netstandard sintaxe do moniker deve ser usada na v3.4 e posterior.
Bibliotecas de classes portáteis
Aviso
PcLs não são recomendados. Embora haja suporte para PCLs, os autores do pacote devem dar suporte ao netstandard. O .NET Platform Standard é uma evolução de PCLs e representa a portabilidade binária entre plataformas usando um único moniker que não está vinculado a uma biblioteca estática, como monikers portáteis-a+b+c .
Para definir uma estrutura de destino que se refere a várias estruturas filho-destino, a portable palavra-chave usada para prefixar a lista de estruturas referenciadas. Evite incluir artificialmente estruturas extras que não são diretamente compiladas porque elas podem levar a efeitos colaterais não intencionais nessas estruturas.
Estruturas adicionais definidas por terceiros fornecem compatibilidade com outros ambientes acessíveis dessa maneira. Além disso, há números de perfil abreviados disponíveis para fazer referência a essas combinações de estruturas relacionadas, Profile#mas essa não é uma prática recomendada para usar esses números, pois reduz a legibilidade das pastas e .nuspec.
| Perfil # | Estruturas | Nome completo | .NET Standard |
|---|---|---|---|
| Perfil2 | . NETFramework 4.0 | portable-net40+win8+sl4+wp7 | |
| Windows 8.0 | |||
| Silverlight 4.0 | |||
| WindowsPhone 7.0 | |||
| Profile3 | . NETFramework 4.0 | portable-net40+sl4 | |
| Silverlight 4.0 | |||
| Profile4 | . NETFramework 4.5 | portable-net45+sl4+win8+wp7 | |
| Silverlight 4.0 | |||
| Windows 8.0 | |||
| WindowsPhone 7.0 | |||
| Perfil5 | . NETFramework 4.0 | portable-net40+win8 | |
| Windows 8.0 | |||
| Profile6 | . NETFramework 4.0.3 | portable-net403+win8 | |
| Windows 8.0 | |||
| Profile7 | . NETFramework 4.5 | portable-net45+win8 | netstandard1.1 |
| Windows 8.0 | |||
| Perfil14 | . NETFramework 4.0 | portable-net40+sl5 | |
| Silverlight 5.0 | |||
| Perfil18 | . NETFramework 4.0.3 | portable-net403+sl4 | |
| Silverlight 4.0 | |||
| Perfil19 | . NETFramework 4.0.3 | portable-net403+sl5 | |
| Silverlight 5.0 | |||
| Perfil23 | . NETFramework 4.5 | portable-net45+sl4 | |
| Silverlight 4.0 | |||
| Perfil24 | . NETFramework 4.5 | portable-net45+sl5 | |
| Silverlight 5.0 | |||
| Profile31 | Windows 8.1 | portable-win81+wp81 | netstandard1.0 |
| WindowsPhone 8.1 (SL) | |||
| Profile32 | Windows 8.1 | portable-win81+wpa81 | netstandard1.2 |
| WindowsPhone 8.1 (UWP) | |||
| Profile36 | . NETFramework 4.0 | portable-net40+sl4+win8+wp8 | |
| Silverlight 4.0 | |||
| Windows 8.0 | |||
| WindowsPhone 8.0 (SL) | |||
| Profile37 | . NETFramework 4.0 | portable-net40+sl5+win8 | |
| Silverlight 5.0 | |||
| Windows 8.0 | |||
| Profile41 | . NETFramework 4.0.3 | portable-net403+sl4+win8 | |
| Silverlight 4.0 | |||
| Windows 8.0 | |||
| Profile42 | . NETFramework 4.0.3 | portable-net403+sl5+win8 | |
| Silverlight 5.0 | |||
| Windows 8.0 | |||
| Profile44 | . NETFramework 4.5.1 | portable-net451+win81 | netstandard1.2 |
| Windows 8.1 | |||
| Profile46 | . NETFramework 4.5 | portable-net45+sl4+win8 | |
| Silverlight 4.0 | |||
| Windows 8.0 | |||
| Profile47 | . NETFramework 4.5 | portable-net45+sl5+win8 | |
| Silverlight 5.0 | |||
| Windows 8.0 | |||
| Profile49 | . NETFramework 4.5 | portable-net45+wp8 | netstandard1.0 |
| WindowsPhone 8.0 (SL) | |||
| Profile78 | . NETFramework 4.5 | portable-net45+win8+wp8 | netstandard1.0 |
| Windows 8.0 | |||
| WindowsPhone 8.0 (SL) | |||
| Profile84 | WindowsPhone 8.1 | portable-wp81+wpa81 | netstandard1.0 |
| WindowsPhone 8.1 (UWP) | |||
| Profile88 | . NETFramework 4.0 | portable-net40+sl4+win8+wp75 | |
| Silverlight 4.0 | |||
| Windows 8.0 | |||
| WindowsPhone 7.5 | |||
| Profile92 | . NETFramework 4.0 | portable-net40+win8+wpa81 | |
| Windows 8.0 | |||
| WindowsPhone 8.1 (UWP) | |||
| Profile95 | . NETFramework 4.0.3 | portable-net403+sl4+win8+wp7 | |
| Silverlight 4.0 | |||
| Windows 8.0 | |||
| WindowsPhone 7.0 | |||
| Profile96 | . NETFramework 4.0.3 | portable-net403+sl4+win8+wp75 | |
| Silverlight 4.0 | |||
| Windows 8.0 | |||
| WindowsPhone 7.5 | |||
| Perfil102 | . NETFramework 4.0.3 | portable-net403+win8+wpa81 | |
| Windows 8.0 | |||
| WindowsPhone 8.1 (UWP) | |||
| Perfil104 | . NETFramework 4.5 | portable-net45+sl4+win8+wp75 | |
| Silverlight 4.0 | |||
| Windows 8.0 | |||
| WindowsPhone 7.5 | |||
| Profile111 | . NETFramework 4.5 | portable-net45+win8+wpa81 | netstandard1.1 |
| Windows 8.0 | |||
| WindowsPhone 8.1 (UWP) | |||
| Perfil136 | . NETFramework 4.0 | portable-net40+sl5+win8+wp8 | |
| Silverlight 5.0 | |||
| Windows 8.0 | |||
| WindowsPhone 8.0 (SL) | |||
| Perfil143 | . NETFramework 4.0.3 | portable-net403+sl4+win8+wp8 | |
| Silverlight 4.0 | |||
| Windows 8.0 | |||
| WindowsPhone 8.0 (SL) | |||
| Perfil147 | . NETFramework 4.0.3 | portable-net403+sl5+win8+wp8 | |
| Silverlight 5.0 | |||
| Windows 8.0 | |||
| WindowsPhone 8.0 (SL) | |||
| Perfil151 | NETFramework 4.5.1 | portable-net451+win81+wpa81 | netstandard1.2 |
| Windows 8.1 | |||
| WindowsPhone 8.1 (UWP) | |||
| Perfil154 | . NETFramework 4.5 | portable-net45+sl4+win8+wp8 | |
| Silverlight 4.0 | |||
| Windows 8.0 | |||
| WindowsPhone 8.0 (SL) | |||
| Perfil157 | Windows 8.1 | portable-win81+wp81+wpa81 | netstandard1.0 |
| WindowsPhone 8.1 (SL) | |||
| WindowsPhone 8.1 (UWP) | |||
| Perfil158 | . NETFramework 4.5 | portable-net45+sl5+win8+wp8 | |
| Silverlight 5.0 | |||
| Windows 8.0 | |||
| WindowsPhone 8.0 (SL) | |||
| Perfil225 | . NETFramework 4.0 | portable-net40+sl5+win8+wpa81 | |
| Silverlight 5.0 | |||
| Windows 8.0 | |||
| WindowsPhone 8.1 (UWP) | |||
| Perfil240 | . NETFramework 4.0.3 | portable-net403+sl5+win8+wpa8 | |
| Silverlight 5.0 | |||
| Windows 8.0 | |||
| WindowsPhone 8.1 (UWP) | |||
| Perfil255 | . NETFramework 4.5 | portable-net45+sl5+win8+wpa81 | |
| Silverlight 5.0 | |||
| Windows 8.0 | |||
| WindowsPhone 8.1 (UWP) | |||
| Perfil259 | . NETFramework 4.5 | portable-net45+win8+wpa81+wp8 | netstandard1.0 |
| Windows 8.0 | |||
| WindowsPhone 8.1 (UWP) | |||
| WindowsPhone 8.0 (SL) | |||
| Perfil328 | . NETFramework 4.0 | portable-net40+sl5+win8+wpa81+wp8 | |
| Silverlight 5.0 | |||
| Windows 8.0 | |||
| WindowsPhone 8.1 (UWP) | |||
| WindowsPhone 8.0 (SL) | |||
| Perfil336 | . NETFramework 4.0.3 | portable-net403+sl5+win8+wpa81+wp8 | |
| Silverlight 5.0 | |||
| Windows 8.0 | |||
| WindowsPhone 8.1 (UWP) | |||
| WindowsPhone 8.0 (SL) | |||
| Perfil344 | . NETFramework 4.5 | portable-net45+sl5+win8+wpa81+wp8 | |
| Silverlight 5.0 | |||
| Windows 8.0 | |||
| WindowsPhone 8.1 (UWP) | |||
| WindowsPhone 8.0 (SL) |
Além disso, os pacotes NuGet direcionados ao Xamarin podem usar estruturas adicionais definidas pelo Xamarin:
| Nome | Descrição | .NET Standard |
|---|---|---|
| monoandroide | Suporte mono para o sistema operacional Android | netstandard1.4 |
| monotouch | Suporte mono para iOS | netstandard1.4 |
| monomac | Suporte mono para OSX | netstandard1.4 |
| xamarinios | Suporte para Xamarin para iOS | netstandard1.4 |
| xamarinmac | Suporte para Xamarin para Mac | netstandard1.4 |
| xamarinpsthree | Suporte para Xamarin no Playstation 3 | netstandard1.4 |
| xamarinpsfour | Suporte para Xamarin no Playstation 4 | netstandard1.4 |
| xamarinpsvita | Suporte para Xamarin no PS Vita | netstandard1.4 |
| xamarinwatchos | Xamarin for Watch OS | netstandard1.4 |
| xamarin tvOS | Xamarin para SO de TV | netstandard1.4 |
| xamarinxboxthreesixty | Xamarin para XBox 360 | netstandard1.4 |
| xamarinxboxone | Xamarin para XBox One | netstandard1.4 |
Observação
Stephen Cleary criou uma ferramenta que lista os PCLs com suporte, que você pode encontrar em sua postagem, perfis do Framework no .NET.