Microsoft.AspNetCore.App pro ASP.NET Core

Systém ASP.NET Core rozhraní (Microsoft.AspNetCore.App) obsahuje sestavení vyvinutá a podporovaná společností Microsoft. Microsoft.AspNetCore.App se nainstaluje, když je nainstalovaná sada SDK .NET Core 3.0 nebo novější. Sdílená rozhraní je sada sestavení (.dll souborů), které jsou nainstalovány v počítači a obsahují komponentu modulu runtime a cílovou sadu. Další informace najdete v tématu Sdílená rozhraní.

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

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á ASP.NET Core architektury:

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

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

Balíček Microsoft.AspNetCore.Appmetapackage pro ASP.NET Core:

  • Nezahrnuje závislosti třetích stran s výjimkou závislostí Json.NET, Remotion.Linq a IX-Async. Tyto závislosti třetích stran se považují za nezbytné k zajištění toho, aby hlavní funkce architektur fungovaly.
  • Zahrnuje všechny podporované balíčky ASP.NET Core s výjimkou balíčků, které obsahují závislosti třetích stran (jiné než ty, které jsou uvedené výše).
  • Zahrnuje všechny podporované balíčky Entity Framework Core s výjimkou balíčků, které obsahují závislosti třetích stran (jiné než ty, které jsou uvedené výše).

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

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

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

  • Pokud balíček obsahuje tranzitivní (nikoli přímou) Microsoft.AspNetCore.Appzávislost na balíčku v a tato čísla verzí se liší, NuGet vygeneruje chybu.
  • Ostatní balíčky přidané do vaší aplikace nemohou změnit verzi balíčků, které jsou součástí Microsoft.AspNetCore.App.
  • Konzistence verzí zajišťuje spolehlivé prostředí. Microsoft.AspNetCore.App byla navržena tak, aby se zabránilo použití kombinace neotestovaných verzí souvisejících bitů společně ve stejné aplikaci.

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

Následující soubor projektu odkazuje na Microsoft.AspNetCore.App metabalíčky 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 verzi nezadáte, sada SDK specifikuje implicitní verzi, to znamená Microsoft.NET.Sdk.Web. Doporučujeme spoléhat se na implicitní verzi určenou sadou SDK a nenastavovat číslo verze explicitně u odkazu na balíček. Pokud máte k tomuto přístupu nějaké dotazy, GitHub komentář v diskuzi o Microsoft.AspNetCore.App verzi.

Implicitní verze je pro přenosné major.minor.0 aplikace nastavená na . Mechanismus přeposílání sdílené architektury spustí aplikaci na nejnovější kompatibilní verzi mezi nainstalovanými sdílenými rozhraními. Pokud chcete zaručit, že se stejná verze použije ve vývoji, testování a produkci, ujistěte se, že je ve všech prostředích nainstalovaná stejná verze sdílené architektury. U samostatných aplikací se implicitní číslo verze nastaví major.minor.patch na hodnotu sdílené architektury, která je součástí nainstalované sady SDK.

Zadání čísla verze v odkazu Microsoft.AspNetCore.Appnezaručuje , že bude zvolena verze sdílené architektury. Předpokládejme například, že je zadaná verze 2.2.1, ale je nainstalovaná verze 2.2.3. V takovém případě bude aplikace používat "2.2.3". I když to nedoporučujeme, můžete dopředné přeposílání zakázat (opravy a/nebo menší). Další informace týkající se dopředné změny hostitele dotnet a konfigurace jeho chování najdete v tématu dotnet host roll forward.

<Project Sdk musí být nastavená na Microsoft.NET.Sdk.Web , aby se používá implicitní verze Microsoft.AspNetCore.App. Při <Project Sdk="Microsoft.NET.Sdk"> použití (bez koncového .Web) :

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

    Upozornění NU1604: Project závislostí Microsoft.AspNetCore.App neobsahuje inkluzivní dolní mez. Pokud chcete zajistit konzistentní výsledky obnovení, zahrpište do verze závislosti dolní mez.

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

Aktualizace ASP.NET Core

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

Aktualizace ASP.NET Core:

Aplikace se při restartování aplikace přeposílá na nejnovější nainstalovanou verzi. V souboru projektu není Microsoft.AspNetCore.App nutné aktualizovat číslo verze. Další informace najdete v tématu Aplikace závislé na rozhraní.

Pokud vaše aplikace dříve používala Microsoft.AspNetCore.All, podívejte se na článek Migrace z Microsoft.AspNetCore.All na Microsoft.AspNetCore.App.