Partilhar via


Microsoft.AspNetCore.App para ASP.NET Core

Observação

Esta não é a versão mais recente deste artigo. Para a versão atual, consulte a versão .NET 9 deste artigo.

Advertência

Esta versão do ASP.NET Core não é mais suportada. Para obter mais informações, consulte a Política de suporte do .NET e do .NET Core. Para a versão atual, consulte a versão .NET 9 deste artigo.

Importante

Estas informações referem-se a um produto de pré-lançamento que pode ser substancialmente modificado antes de ser lançado comercialmente. A Microsoft não oferece garantias, expressas ou implícitas, em relação às informações fornecidas aqui.

Para a versão atual, consulte a versão .NET 9 deste artigo.

A estrutura compartilhada do ASP.NET Core (Microsoft.AspNetCore.App) contém assemblies desenvolvidos e suportados pela Microsoft. Microsoft.AspNetCore.App é instalado quando o SDK do .NET Core 3.0 ou posterior é instalado. A estrutura compartilhada é o conjunto de assemblies (arquivos.dll ) instalados na máquina e inclui um componente de tempo de execução e um pacote de destino. Para obter mais informações, consulte A estrutura compartilhada.

  • Os projetos destinados ao Microsoft.NET.Sdk.Web SDK fazem referência implícita à Microsoft.AspNetCore.App estrutura.

Não são necessárias referências adicionais para estes 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 suportados pela equipe ASP.NET Core.

Esse recurso requer o ASP.NET Core 2.x direcionado ao .NET Core 2.x.

O Microsoft.AspNetCore.Appmetapacote para ASP.NET Core:

  • Não inclui dependências de terceiros, exceto Json.NET, Remotion.Linq e IX-Async. Essas dependências de terceiros são consideradas necessárias para garantir que os principais recursos dos frameworks funcionem.
  • Inclui todos os pacotes suportados pela equipe ASP.NET Core, exceto aqueles que contêm dependências de terceiros (além das mencionadas anteriormente).
  • Inclui todos os pacotes suportados pela equipe principal do Entity Framework, exceto aqueles que contêm dependências de terceiros (além das mencionadas anteriormente).

Todos os recursos do ASP.NET Core 2.x e do Entity Framework Core 2.x estão incluídos no Microsoft.AspNetCore.App pacote. Os modelos de projeto padrão destinados ao ASP.NET Core 2.x usam este pacote. Recomendamos que os aplicativos destinados ao ASP.NET Core 2.x e ao Entity Framework Core 2.x usem o Microsoft.AspNetCore.App pacote.

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

O uso do metapacote Microsoft.AspNetCore.App fornece restrições de versão que protegem a sua aplicação.

  • Se for incluído um pacote que tenha uma dependência transitiva (não direta) de um pacote no Microsoft.AspNetCore.App, e esses números de versão diferirem, o NuGet gerará 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 da versão garante uma experiência confiável. Microsoft.AspNetCore.App foi projetado para evitar que combinações de versões não testadas de bits relacionados sejam usadas juntas no mesmo aplicativo.

Os aplicativos que usam o Microsoft.AspNetCore.App metapacote aproveitam automaticamente a estrutura compartilhada do ASP.NET Core. Quando se utiliza o Microsoft.AspNetCore.App metapacote, nenhum recurso dos pacotes NuGet ASP.NET Core referenciados é implantado com a aplicação — a estrutura partilhada ASP.NET Core contém esses recursos. Os ativos na estrutura compartilhada são pré-compilados para melhorar o tempo de inicialização do aplicativo. Para obter mais informações, consulte A estrutura compartilhada.

O seguinte arquivo de projeto faz referência ao 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 do ASP.NET Core 2.x. Ele não especifica um número de versão para a referência do Microsoft.AspNetCore.App pacote. Quando a versão não é especificada, uma versão implícita é especificada pelo SDK, ou seja, Microsoft.NET.Sdk.Web. Recomendamos confiar na versão implícita especificada pelo SDK e não definir explicitamente o número da versão na referência do pacote. Se você tiver dúvidas sobre essa abordagem, deixe um comentário no GitHub na Discussão para a versão Microsoft.AspNetCore.App implícita.

A versão implícita está definida como major.minor.0 para aplicações portáteis. O mecanismo roll-forward da 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, teste e produção, certifique-se de que a mesma versão da estrutura compartilhada seja instalada em todos os ambientes. Para aplicativos autônomos, o número de versão implícito é definido como o major.minor.patch da estrutura compartilhada incluída no SDK instalado.

Especificar um número de versão na Microsoft.AspNetCore.App referência não garante que a versão da estrutura compartilhada será escolhida. Por exemplo, suponha que a versão "2.2.1" é especificada, mas "2.2.3" está instalada. Nesse caso, o aplicativo usará "2.2.3". Embora não seja recomendado, você pode desativar o roll forward (patch e/ou menor). Para obter mais informações sobre o roll-forward do host dotnet e como configurar seu comportamento, consulte dotnet host roll-forward.

<Project Sdk deve ser configurado para Microsoft.NET.Sdk.Web para usar a versão implícita Microsoft.AspNetCore.App. Quando <Project Sdk="Microsoft.NET.Sdk"> (sem o trailing .Web) é usado:

  • O seguinte aviso é gerado:

    Aviso NU1604: A dependência de projeto Microsoft.AspNetCore.App não tem um limite inferior inclusivo. Inclua um limite inferior na versão de dependência para garantir resultados de restauração consistentes.

  • Este é um problema conhecido com o SDK do .NET Core 2.1.

Atualizar ASP.NET Core

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

Para atualizar ASP.NET Core:

As aplicações serão atualizadas para a versão instalada mais recente quando o aplicativo for reiniciado. Não é necessário atualizar o Microsoft.AspNetCore.App número da versão no arquivo de projeto. Para obter mais informações, consulte Progressão de aplicações dependentes da framework.

Se a sua aplicação usou anteriormente Microsoft.AspNetCore.All, consulte Migrando de Microsoft.AspNetCore.All para Microsoft.AspNetCore.App.