c# - microsoft - dotnet core add nuget repository



Qual a diferença entre os novos TFMs netstandardapp e netcoreapp? (2)

Qual a diferença entre os novos TFMs netstandardapp e netcoreapp?

netstandardapp está obsoleto, o netcoreapp substitui.

Então, o que exatamente deveria ser o netcoreapp?

netcoreapp é o apelido da estrutura de destino da .NET Core Platform. Se você adicionar netcoreapp à seção de estruturas do seu project.json, uma compilação do seu aplicativo será executada no .NET Core.

Não entendo qual é a diferença entre os hosts de aplicativos NETStandard.Library + e a instalação básica do .NET Core. Alguém poderia me explicar isso?

Os hosts de aplicativos NETStandard.Library + são o pacote NetStandard.App. Não use isso - está morto. Inclui três pacotes de host de aplicativos e a biblioteca padrão.

  • Microsoft.NETCore.DotNetHostPolicy
  • Microsoft.NETCore.Platforms
  • Microsoft.NETCore.Runtime
  • NETStandard.Library

A instalação base do NET Core é o pacote Microsoft.NetCore.App. Use isso em seu lugar. Ele mantém dois dos pacotes acima, retira dois deles e adiciona cerca de 37 pacotes adicionais Microsoft.* E System.* .

  • Assemblies adicionais Microsoft.*
  • Microsoft.NETCore.DotNetHostPolicy
  • Microsoft.NETCore.Platforms <----- Em abril de 2016, esses dois se tornaram
  • Microsoft.NETCore.Runtime <------- parte da NETStandard.Library.
  • NETStandard.Library
  • System.* adicional System.* Montagens

Referências

https://github.com/NuGet/Home/issues/2524 > Indica que o apelido de estrutura de destino netstandardapp "não é mais válido".

https://github.com/dotnet/cli/issues/2482 > Afirma que "Projetos direcionados ao NetStandardApp precisam ser portados para o NetCoreApp. O NetStandardApp não será suportado pelo CLI 1.0.0 RC2".

https://www.myget.org/feed/aspnetvnext/package/nuget/NETStandard.Library > O histórico de pacotes mostra a grande mudança em abril de 2016.

https://ffff65535.com

Notei que o NuGet adicionou recentemente suporte para vários novos TFMs relacionados ao .NET Core, incluindo:

  • netstandard (1.0-1.5)
  • netstandardapp (1.5)
  • netcoreapp (1.0)

netstandard , netstandard é o equivalente do .NET Core a um perfil portátil; Ele permite que você segmente várias plataformas usando um único apelido, em vez de explicitar explicitamente todas as plataformas suportadas, por exemplo, portable-net45+netcore45+wp81 .

Enquanto isso, de acordo com este documento, o netstandardapp é mais como um aplicativo de console no .NET Core; representa algo que qualquer tempo de execução do .NET Core (por exemplo, CoreCLR, CoreRT).

Então, o que exatamente deveria ser o netcoreapp ? Encontrei o problema de rastreamento para ele here, que inclui um comentário na parte inferior que explica qual é a diferença, mas não entendo qual a diferença entre

Hosts de aplicativos NETStandard.Library +

e

Instalação básica do .NET Core

é. Alguém poderia me explicar isso?


A .NET Standard Library (netstandard) é uma biblioteca consistente entre os modelos de aplicativos. O .NET Core (netcoreapp) é executado no topo da .NET Standard Library e é um AppModel. Na página do github, eles respondem o que é um aplicativo .NET Standard e qual a diferença com o .NET Core ( https://github.com/dotnet/corefx/blob/master/Documentation/architecture/net-standard-applications.md ) e ( https://github.com/dotnet/corefx/blob/master/Documentation/architecture/net-platform-standard.md )

ATUALIZAÇÃO: o .NETStandardapp está obsoleto. O aplicativo NETCore o substitui ( https://github.com/NuGet/Home/issues/2524 )

P: O que é um aplicativo .NET Standard? R: Um aplicativo .NET Standard é um aplicativo que pode ser executado em qualquer tempo de execução do .NET Core: CoreCLR (atual), .NETNative (futuro). Pode ser executado em uma das muitas plataformas principais do .NET (Windows, OSX, Linux). Ele depende do host fornecido pelo tempo de execução especificado. É uma estrutura de composição compilada a partir dos pacotes dos quais o aplicativo depende. Sua política de carregamento de montagem permite versões mais recentes de dependências sem nenhuma configuração de aplicativo (por exemplo: BindingRedirects não são necessários).

P: Como isso é diferente do .NETCore? R: A estrutura de destino do .NETCore representa os aplicativos Windows 8, Windows 8.1 e Universal Windows Platform. Para fins de compatibilidade, esse apelido não pode ser reutilizado para "aplicativos .NET Core". A sobreposição da marca é lamentável.

P: Como isso é diferente do .NETStandard? R: A estrutura de destino NETStandard é uma estrutura de destino abstrata que representa a superfície da API de muitas estruturas e plataformas. Como esses assemblies NETStandard podem ser executados em qualquer plataforma que ofereça suporte ao NETStandard direcionado por esse assembly, por exemplo: .NET Desktop, Windows Phone, aplicativos Universal Windows Platform, aplicativos .NET Standard, etc. NETStandardApplication é uma estrutura de destino concreta que representa uma única plataforma com superfície e implementação de API. Os aplicativos padrão do .NET são executáveis ​​por conta própria. As bibliotecas .NETStandard devem ser publicadas para ou consumidas por uma estrutura de destino concreta específica a ser usada nesse tipo de aplicativo.





.net-core