Microsoft. AspNetCore. app para ASP.NET CoreMicrosoft.AspNetCore.App for ASP.NET Core

A estrutura compartilhada do ASP.NET CoreMicrosoft.AspNetCore.App() contém assemblies que são desenvolvidos e suportados pela Microsoft.The ASP.NET Core shared framework (Microsoft.AspNetCore.App) contains assemblies that are developed and supported by Microsoft. Microsoft.AspNetCore.Appé instalado quando o SDK do .NET Core 3,0 ou posterior está instalado.Microsoft.AspNetCore.App is installed when the .NET Core 3.0 or later SDK is installed. A estrutura compartilhada é o conjunto de assemblies (arquivos . dll ) que estão instalados no computador e inclui um componente de tempo de execução e um pacote de direcionamento.The shared framework is the set of assemblies (.dll files) that are installed on the machine and includes a runtime component and a targeting pack. Saiba mais em A estrutura compartilhada.For more information, see The shared framework.

  • Projetos direcionados ao Microsoft.NET.Sdk.Web SDK referenciam implicitamente Microsoft.AspNetCore.App a estrutura.Projects that target the Microsoft.NET.Sdk.Web SDK implicitly reference the Microsoft.AspNetCore.App framework.

Nenhuma referência adicional é necessária para esses projetos:No additional references are required for these projects:

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

A estrutura compartilhada ASP.NET Core:The ASP.NET Core shared framework:

  • Não inclui dependências de terceiros.Doesn't include third-party dependencies.
  • Inclui todos os pacotes com suporte pela equipe de ASP.NET Core.Includes all supported packages by the ASP.NET Core team.

Este recurso exige o ASP.NET Core 2.x direcionado ao .NET Core 2.x.This feature requires ASP.NET Core 2.x targeting .NET Core 2.x.

O metapacote Microsoft.AspNetCore.App para ASP.NET Core:The Microsoft.AspNetCore.App metapackage for ASP.NET Core:

  • Não tem dependências de terceiros, com exceção de Json.NET, Remotion.Linq e IX-Async.Does not include third-party dependencies except for Json.NET, Remotion.Linq, and IX-Async. Essas dependências de terceiros são consideradas necessárias para garantir o funcionamento dos principais recursos das estruturas.These 3rd-party dependencies are deemed necessary to ensure the major frameworks features function.
  • 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).Includes all supported packages by the ASP.NET Core team except those that contain third-party dependencies (other than those previously mentioned).
  • 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).Includes all supported packages by the Entity Framework Core team except those that contain third-party dependencies (other than those previously mentioned).

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.All the features of ASP.NET Core 2.x and Entity Framework Core 2.x are included in the Microsoft.AspNetCore.App package. Os modelos de projeto padrão direcionados ASP.NET Core 2. x usam este pacote.The default project templates targeting ASP.NET Core 2.x use this package. Recomendamos que os aplicativos que visam ASP.NET Core 2. x e Entity Framework Core 2 Microsoft.AspNetCore.App . x usem o pacote.We recommend applications targeting ASP.NET Core 2.x and Entity Framework Core 2.x use the Microsoft.AspNetCore.App package.

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.The version number of the Microsoft.AspNetCore.App metapackage represents the minimum ASP.NET Core version and Entity Framework Core version.

O uso do metapacote Microsoft.AspNetCore.App fornece restrições de versões que protegem seu aplicativo:Using the Microsoft.AspNetCore.App metapackage provides version restrictions that protect your app:

  • 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.If a package is included that has a transitive (not direct) dependency on a package in Microsoft.AspNetCore.App, and those version numbers differ, NuGet will generate an error.
  • Outros pacotes adicionados ao seu aplicativo não podem alterar a versão dos pacotes incluídos no Microsoft.AspNetCore.App.Other packages added to your app cannot change the version of packages included in Microsoft.AspNetCore.App.
  • A consistência de versão garante uma experiência confiável.Version consistency ensures a reliable experience. 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.Microsoft.AspNetCore.App was designed to prevent untested version combinations of related bits being used together in the same app.

Aplicativos que usam o metapacote Microsoft.AspNetCore.App aproveitam automaticamente a estrutura compartilhada do ASP.NET Core.Applications that use the Microsoft.AspNetCore.App metapackage automatically take advantage of the ASP.NET Core shared framework. 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.When you use the Microsoft.AspNetCore.App metapackage, no assets from the referenced ASP.NET Core NuGet packages are deployed with the application—the ASP.NET Core shared framework contains these assets. Os ativos na estrutura compartilhada são pré-compilados para melhorar o tempo de inicialização do aplicativo.The assets in the shared framework are precompiled to improve application startup time. Saiba mais em A estrutura compartilhada.For more information, see The shared framework.

O arquivo de projeto a seguir Microsoft.AspNetCore.App referencia o metapacote para ASP.NET Core e representa um modelo típico do ASP.NET Core 2,2:The following project file references the Microsoft.AspNetCore.App metapackage for ASP.NET Core and represents a typical ASP.NET Core 2.2 template:

<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.The preceding markup represents a typical ASP.NET Core 2.x template. Ela não especifica um número de versão para a referência de pacote Microsoft.AspNetCore.App.It doesn't specify a version number for the Microsoft.AspNetCore.App package reference. Quando a versão não for especificada, uma versão implícita será especificada pelo SDK, ou seja, Microsoft.NET.Sdk.Web.When the version is not specified, an implicit version is specified by the SDK, that is, 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.We recommend relying on the implicit version specified by the SDK and not explicitly setting the version number on the package reference. 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.If you have questions on this approach, leave a GitHub comment at the Discussion for the Microsoft.AspNetCore.App implicit version.

A versão implícita é definida como major.minor.0 para aplicativos portátil.The implicit version is set to major.minor.0 for portable apps. O mecanismo de roll forward estrutura compartilhada executará o aplicativo na versão compatível mais recente entre as estruturas compartilhadas instaladas.The shared framework roll-forward mechanism will run the app on the latest compatible version among the installed shared frameworks. 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.To guarantee the same version is used in development, test, and production, ensure the same version of the shared framework is installed in all environments. Para aplicativos independentes, o número de versão implícita é definido como major.minor.patch da estrutura compartilhada incluída no SDK instalado.For self contained apps, the implicit version number is set to the major.minor.patch of the shared framework bundled in the installed SDK.

Especificar um número de versão na referência Microsoft.AspNetCore.App não garante que a versão da estrutura compartilhada será escolhida.Specifying a version number on the Microsoft.AspNetCore.App reference does not guarantee that version of the shared framework will be chosen. Por exemplo, suponha que a versão "2.2.1" seja especificada, mas "2.2.3" esteja instalado.For example, suppose version "2.2.1" is specified, but "2.2.3" is installed. Nesse caso, o aplicativo usará "2.2.3".In that case, the app will use "2.2.3". Embora não seja recomendado, você pode desabilitar o roll forward (patch e/ou secundária).Although not recommended, you can disable roll forward (patch and/or minor). 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.For more information regarding dotnet host roll-forward and how to configure its behavior, see dotnet host roll forward.

<Project Sdk deve ser definido como Microsoft.NET.Sdk.Web para usar o Microsoft.AspNetCore.App da versão implícita.<Project Sdk must be set to Microsoft.NET.Sdk.Web to use the implicit version Microsoft.AspNetCore.App. Quando <Project Sdk="Microsoft.NET.Sdk"> (sem o .Web à direita) é usado:When <Project Sdk="Microsoft.NET.Sdk"> (without the trailing .Web) is used:

  • O aviso a seguir é gerado:The following warning is generated:

    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 consistentes de restauração.Warning NU1604: Project dependency Microsoft.AspNetCore.App does not contain an inclusive lower bound. Include a lower bound in the dependency version to ensure consistent restore results.

  • Esse é um problema conhecido do SDK do .NET Core 2.1.This is a known issue with the .NET Core 2.1 SDK.

Atualizar o ASP.NET CoreUpdate ASP.NET Core

O Microsoft.AspNetCore.App metapacote não é um pacote tradicional atualizado do NuGet.The Microsoft.AspNetCore.App metapackage isn't a traditional package that's updated from 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 tratada fora do NuGet.Similar to Microsoft.NETCore.App, Microsoft.AspNetCore.App represents a shared runtime, which has special versioning semantics handled outside of NuGet. Para obter mais informações, veja Pacotes, metapacotes e estruturas.For more information, see Packages, metapackages and frameworks.

Para atualizar o ASP.NET Core:To update ASP.NET Core:

Os aplicativos efetuarão roll forward para a versão mais recente instalada na reinicialização do aplicativo.Applications will roll forward to the latest installed version on application restart. Não é necessário atualizar o número de versão Microsoft.AspNetCore.App no arquivo de projeto.It's not necessary to update the Microsoft.AspNetCore.App version number in the project file. Para obter mais informações, consulte Roll forward de aplicativos dependentes de estrutura.For more information, see Framework-dependent apps roll forward.

Se seu aplicativo tiver usado Microsoft.AspNetCore.All, veja Migração do Microsoft.AspNetCore.All para Microsoft.AspNetCore.App.If your application previously used Microsoft.AspNetCore.All, see Migrating from Microsoft.AspNetCore.All to Microsoft.AspNetCore.App.