Microsoft.AspNetCore.App pro ASP.NET Core

Sdílená architektura ASP.NET Core (Microsoft.AspNetCore.App) obsahuje sestavení vyvinutá a podporovaná Microsoftem. Microsoft.AspNetCore.App je nainstalována při instalaci sady .NET Core 3.0 nebo novější sady SDK . Sdílená architektura je sada sestavení (soubory .dll ), které jsou nainstalovány na počítači a obsahuje komponentu modulu runtime a cílovou sadu. Další informace naleznete v části Sdílená architektura.

  • Projekty, které cílí na Microsoft.NET.Sdk.Web sadu SDK, implicitně odkazují na architekturu Microsoft.AspNetCore.App .

Pro tyto projekty nejsou vyžadovány žádné další odkazy:

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

Sdílená architektura ASP.NET Core:

  • Nezahrnuje závislosti třetích stran.
  • Zahrnuje všechny podporované balíčky týmu ASP.NET Core.

Tato funkce vyžaduje, ASP.NET Core 2.x cílí na .NET Core 2.x.

Metabalík Microsoft.AspNetCore.Apppro ASP.NET Core:

  • Nezahrnuje závislosti třetích stran s výjimkou Json.NET, Remotion.Linq a IX-Async. Tyto závislosti třetích stran jsou považovány za nezbytné k zajištění fungování hlavních funkcí architektur.
  • Zahrnuje všechny podporované balíčky týmu ASP.NET Core s výjimkou těch, které obsahují závislosti třetích stran (jiné než dříve uvedené).
  • Zahrnuje všechny podporované balíčky týmu Entity Framework Core s výjimkou těch, které obsahují závislosti třetích stran (jiné než dříve uvedené).

Součástí balíčku jsou Microsoft.AspNetCore.App všechny funkce ASP.NET Core 2.x a Entity Framework Core 2.x. Výchozí šablony projektů, které cílí na ASP.NET Core 2.x, používají tento balíček. Doporučujeme, aby balíčky používaly Microsoft.AspNetCore.App aplikace cílené na ASP.NET Core 2.x a Entity Framework Core 2.x.

Číslo Microsoft.AspNetCore.App verze metabalíku představuje minimální verzi ASP.NET Core a verzi Entity Framework Core.

Microsoft.AspNetCore.App Použití metabalíku poskytuje omezení verzí, která chrání vaši aplikaci:

  • Pokud je součástí balíčku, který má tranzitivní (ne přímou) závislost na balíčku v Microsoft.AspNetCore.Appa tato čísla verzí se liší, NuGet vygeneruje chybu.
  • Jiné balíčky přidané do vaší aplikace nemůžou změnit verzi balíčků, které jsou Microsoft.AspNetCore.Appsoučástí .
  • Konzistence verzí zajišťuje spolehlivé prostředí. Microsoft.AspNetCore.App byla navržena tak, aby zabránila tomu, aby se ve stejné aplikaci používaly kombinace nesouvisených bitů.

Aplikace, které používají metabalík, automaticky využívají sdílenou architekturu Microsoft.AspNetCore.App ASP.NET Core. Při použití Microsoft.AspNetCore.App metabalíku se s aplikací nasadí žádné prostředky z odkazovaných balíčků NuGet ASP.NET Core – sdílená architektura ASP.NET Core obsahuje tyto prostředky. Prostředky ve sdíleném rozhraní jsou předkompilovány, aby se zlepšil čas spuštění aplikace. Další informace naleznete v části Sdílená architektura.

Následující soubor projektu odkazuje na Microsoft.AspNetCore.App metabalík pro ASP.NET Core a představuje typickou šablonu 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>

Předchozí kód představuje typickou šablonu ASP.NET Core 2.x. Nezadá číslo verze pro odkaz na Microsoft.AspNetCore.App balíček. Pokud není zadaná verze, je implicitní verze určena sadou SDK, tjMicrosoft.NET.Sdk.Web. . Doporučujeme spoléhat se na implicitní verzi určenou sadou SDK a ne explicitně nastavit číslo verze v odkazu na balíček. Pokud máte k tomuto přístupu dotazy, na diskuzi pro Microsoft.AspNetCore.App implicitní verzi nechejte komentář GitHubu.

Implicitní verze je nastavená na major.minor.0 přenosnou aplikaci. Mechanismus postupného zavedení sdílené architektury spustí aplikaci na nejnovější kompatibilní verzi mezi nainstalovanými sdílenými architekturami. Pokud chcete zaručit, že se stejná verze používá ve vývoji, testování a produkčním prostředí, ujistěte se, že je ve všech prostředích nainstalovaná stejná verze sdílené architektury. U samostatných aplikací je implicitní číslo verze nastavené na major.minor.patch sdílenou architekturu, která je součástí nainstalované sady SDK.

Zadání čísla verze v Microsoft.AspNetCore.App odkazu nezaručuje, že bude zvolena verze sdíleného rozhraní. Předpokládejme například, že je zadaná verze 2.2.1, ale je nainstalovaná verze 2.2.3. V takovém případě aplikace použije hodnotu 2.2.3. I když se nedoporučuje, můžete zakázat vrácení vpřed (oprava nebo podverze). Další informace o roll-forward hostitele dotnet a o tom, jak nakonfigurovat jeho chování, naleznete v tématu dotnet host roll forward.

<Project Sdk musí být nastavena tak, aby Microsoft.NET.Sdk.Web používala implicitní verzi Microsoft.AspNetCore.App. Pokud <Project Sdk="Microsoft.NET.Sdk"> se použije (bez koncového .Web) :

  • Vygeneruje se následující upozornění:

    Upozornění NU1604: Závislost projektu Microsoft.AspNetCore.App neobsahuje inkluzivní dolní mez. Do verze závislosti zahrňte dolní mez, abyste zajistili konzistentní výsledky obnovení.

  • Jedná se o známý problém se sadou .NET Core 2.1 SDK.

Aktualizace ASP.NET Core

Metabalíč Microsoft.AspNetCore.App není tradiční balíček, který se aktualizuje z NuGetu. Microsoft.NETCore.AppMicrosoft.AspNetCore.App Podobně jako v případě představuje sdílený modul runtime, který má speciální sémantiku správy verzí zpracovávanou mimo NuGet. Další informace naleznete v tématu Balíčky, metabalíky a architektury.

Aktualizace ASP.NET Core:

  • Na vývojových počítačích a buildovacích serverech: Stáhněte a nainstalujte sadu .NET Core SDK.
  • Na serverech nasazení: Stáhněte a nainstalujte modul runtime .NET Core.

Aplikace se při restartování aplikace převedou na nejnovější nainstalovanou verzi. Číslo verze v souboru projektu není nutné aktualizovat Microsoft.AspNetCore.App . Další informace najdete v tématu o zavedení aplikací závislých na architektuře.

Pokud se vaše aplikace dříve používala Microsoft.AspNetCore.All, přečtěte si téma Migrace z Microsoft.AspNetCore.All na Microsoft.AspNetCore.App.