Microsoft.AspNetCore.App para ASP.NET Core

a estrutura compartilhada do ASP.NET Core ( Microsoft.AspNetCore.App ) contém assemblies que são desenvolvidos e suportados pela Microsoft. Microsoft.AspNetCore.App é instalado quando o SDK do .NET Core 3,0 ou posterior está instalado. A estrutura compartilhada é o conjunto de assemblies (.dll arquivos) que estão instalados no computador e inclui um componente de tempo de execução e um pacote de direcionamento. Saiba mais em A estrutura compartilhada.

  • Projetos direcionados ao Microsoft.NET.Sdk.Web SDK referenciam implicitamente a Microsoft.AspNetCore.App estrutura.

Nenhuma referência adicional é necessária para esses projetos:

<Project Sdk="Microsoft.NET.Sdk.Web">
  <PropertyGroup>
    <TargetFramework>netcoreapp3.0</TargetFramework>
  </PropertyGroup>
    ...
</Project>

a estrutura compartilhada ASP.NET Core:

  • Não inclui dependências de terceiros.
  • inclui todos os pacotes com suporte pela equipe de ASP.NET Core.

Este recurso exige o ASP.NET Core 2.x direcionado ao .NET Core 2.x.

O metapacote do Microsoft.AspNetCore.app para ASP.NET Core:

  • Não tem dependências de terceiros, com exceção de Json.NET, Remotion.Linq e IX-Async. Essas dependências de terceiros são consideradas necessárias para garantir o funcionamento dos principais recursos das estruturas.
  • Inclui todos os pacotes com suporte pela equipe do ASP.NET Core, exceto aqueles que contêm dependências de terceiros (que não sejam aqueles mencionados anteriormente).
  • Inclui todos os pacotes com suporte pela equipe do Entity Framework Core, exceto aqueles que contêm dependências de terceiros (que não sejam aqueles mencionados anteriormente).

Todos os recursos do ASP.NET Core 2.x e do Entity Framework Core 2.x são incluídos no pacote Microsoft.AspNetCore.App. os modelos de projeto padrão direcionados ASP.NET Core 2. x usam este pacote. recomendamos que os aplicativos que visam ASP.NET Core 2. x e Entity Framework Core 2. x usem o Microsoft.AspNetCore.App pacote.

O número de versão do metapacote Microsoft.AspNetCore.App representa a versão mínima do ASP.NET Core e a versão do Entity Framework Core.

O uso do metapacote Microsoft.AspNetCore.App fornece restrições de versões que protegem seu aplicativo:

  • Se um pacote incluído tem uma dependência (não direta) transitiva em um pacote no Microsoft.AspNetCore.App, e os números de versão forem diferentes, o NuGet gera um erro.
  • Outros pacotes adicionados ao seu aplicativo não podem alterar a versão dos pacotes incluídos no Microsoft.AspNetCore.App.
  • A consistência de versão garante uma experiência confiável. Microsoft.AspNetCore.App foi projetado para evitar combinações de versão não testado de bits relacionados que estão sendo usados juntos no mesmo aplicativo.

Aplicativos que usam o metapacote Microsoft.AspNetCore.App aproveitam automaticamente a estrutura compartilhada do ASP.NET Core. Quando você usa o metapacote Microsoft.AspNetCore.App, nenhum— ativo dos pacotes NuGet do ASP.NET Core referenciados é implantado com o aplicativo, porque a estrutura compartilhada do ASP.NET Core contém esses ativos. Os ativos na estrutura compartilhada são pré-compilados para melhorar o tempo de inicialização do aplicativo. Saiba mais em A estrutura compartilhada.

o arquivo de projeto a seguir referencia o Microsoft.AspNetCore.App metapacote para ASP.NET Core e representa um modelo típico do ASP.NET Core 2,2:

<Project Sdk="Microsoft.NET.Sdk.Web">

  <PropertyGroup>
    <TargetFramework>netcoreapp2.2</TargetFramework>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Microsoft.AspNetCore.App" />
  </ItemGroup>

</Project>

a marcação anterior representa um modelo típico de ASP.NET Core 2. x. Ela não especifica um número de versão para a referência de pacote Microsoft.AspNetCore.App. Quando a versão não for especificada, uma versão implícita será especificada pelo SDK, ou seja, Microsoft.NET.Sdk.Web. Recomendamos que você conte com a versão implícita especificada pelo SDK, e não defina explicitamente o número de versão na referência de pacote. Se tiver dúvidas sobre essa abordagem, deixe um comentário do GitHub na Discussão para a versão implícita do Microsoft.AspNetCore.App.

A versão implícita é definida como major.minor.0 para aplicativos portátil. O mecanismo de roll forward estrutura compartilhada executará o aplicativo na versão compatível mais recente entre as estruturas compartilhadas instaladas. Para garantir que a mesma versão seja usada no desenvolvimento, no teste e na produção, certifique-se de que a mesma versão da estrutura compartilhada seja instalada em todos os ambientes. Para aplicativos independentes, o número de versão implícita é definido como major.minor.patch da estrutura compartilhada incluída no SDK instalado.

Especificar um número de versão na referência Microsoft.AspNetCore.Appnão garante que a versão da estrutura compartilhada será escolhida. Por exemplo, suponha que a versão "2.2.1" seja especificada, mas "2.2.3" esteja instalado. Nesse caso, o aplicativo usará "2.2.3". Embora não seja recomendado, você pode desabilitar o roll forward (patch e/ou secundária). Para obter mais informações sobre como efetuar roll forward do host dotnet e como configurar seu comportamento, veja Efetuar roll forward do host dotnet.

<Project Sdk deve ser definido como Microsoft.NET.Sdk.Web para usar o Microsoft.AspNetCore.App da versão implícita. Quando <Project Sdk="Microsoft.NET.Sdk"> (sem o .Web à direita) é usado:

  • O aviso a seguir é gerado:

    aviso NU1604: o Microsoft.AspNetCore.App de dependência de Project não contém um limite inferior inclusivo. Inclua um limite inferior na versão de dependência para garantir resultados de restauração consistentes.

  • Esse é um problema conhecido do SDK do .NET Core 2.1.

Atualizar o ASP.NET Core

O Microsoft.AspNetCore.App metapacote não é um pacote tradicional atualizado do NuGet. Semelhante ao Microsoft.NETCore.App, Microsoft.AspNetCore.App representa um runtime compartilhado, que tem semântica de controle de versão especial tratada fora do NuGet. Para obter mais informações, veja Pacotes, metapacotes e estruturas.

Para atualizar o ASP.NET Core:

Os aplicativos efetuarão roll forward para a versão mais recente instalada na reinicialização do aplicativo. Não é necessário atualizar o número de versão Microsoft.AspNetCore.App no arquivo de projeto. Para obter mais informações, consulte Roll forward de aplicativos dependentes de estrutura.

Se seu aplicativo tiver usado Microsoft.AspNetCore.All, veja Migração do Microsoft.AspNetCore.All para Microsoft.AspNetCore.App.