Delen via


Microsoft.AspNetCore.App voor ASP.NET Core

Opmerking

Dit is niet de nieuwste versie van dit artikel. Zie de .NET 9-versie van dit artikel voor de huidige release.

Waarschuwing

Deze versie van ASP.NET Core wordt niet meer ondersteund. Zie het .NET- en .NET Core-ondersteuningsbeleid voor meer informatie. Zie de .NET 9-versie van dit artikel voor de huidige release.

Belangrijk

Deze informatie heeft betrekking op een pre-releaseproduct dat aanzienlijk kan worden gewijzigd voordat het commercieel wordt uitgebracht. Microsoft geeft geen garanties, uitdrukkelijk of impliciet, met betrekking tot de informatie die hier wordt verstrekt.

Zie de .NET 9-versie van dit artikel voor de huidige release.

Het gedeelde ASP.NET Core-framework (Microsoft.AspNetCore.App) bevat assembly's die door Microsoft worden ontwikkeld en ondersteund. Microsoft.AspNetCore.App wordt geïnstalleerd wanneer de SDK van .NET Core 3.0 of hoger is geïnstalleerd. Het gedeelde framework is de set van assemblies (.dll bestanden) die op de computer zijn geïnstalleerd en omvat een runtime-onderdeel en een doelpakket. Zie Het gedeelde frameworkvoor meer informatie.

  • Projecten die gericht zijn op de Microsoft.NET.Sdk.Web SDK verwijzen impliciet naar het Microsoft.AspNetCore.App framework.

Er zijn geen aanvullende verwijzingen vereist voor deze projecten:

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

Het gedeelde ASP.NET Core-framework:

  • Bevat geen afhankelijkheden van derden.
  • Bevat alle ondersteunde pakketten van het ASP.NET Core-team.

Voor deze functie is ASP.NET Core 2.x vereist die is gericht op .NET Core 2.x.

De Microsoft.AspNetCore.Appmetapackage voor ASP.NET Core:

  • Bevat geen afhankelijkheden van derden, met uitzondering van Json.NET, Remotion.Linq en IX-Async. Deze afhankelijkheden van derden worden geacht noodzakelijk te zijn om ervoor te zorgen dat de belangrijkste functies van frameworks functioneren.
  • Bevat alle ondersteunde pakketten van het ASP.NET Core-team, met uitzondering van pakketten die afhankelijkheden van derden bevatten (anders dan die eerder vermeld).
  • Bevat alle ondersteunde pakketten van het Entity Framework Core-team, behalve pakketten die afhankelijkheden van derden bevatten (anders dan die eerder vermeld).

Alle functies van ASP.NET Core 2.x en Entity Framework Core 2.x zijn opgenomen in het Microsoft.AspNetCore.App pakket. De standaardprojectsjablonen die zijn gericht op ASP.NET Core 2.x, gebruiken dit pakket. We raden toepassingen aan die zijn gericht op ASP.NET Core 2.x en Entity Framework Core 2.x, het Microsoft.AspNetCore.App pakket gebruiken.

Het versienummer van de Microsoft.AspNetCore.App metapackage vertegenwoordigt de minimale ASP.NET Core-versie en Entity Framework Core-versie.

Het gebruik van de Microsoft.AspNetCore.App metapackage biedt versiebeperkingen waarmee uw app wordt beveiligd:

  • Als een pakket is opgenomen met een transitieve (niet directe) afhankelijkheid van een pakket in Microsoft.AspNetCore.App, en deze versienummers verschillen, genereert NuGet een fout.
  • Andere pakketten die aan uw app zijn toegevoegd, kunnen de versie van pakketten die in Microsoft.AspNetCore.Appuw app zijn opgenomen, niet wijzigen.
  • Versieconsistentie zorgt voor een betrouwbare ervaring. Microsoft.AspNetCore.App is ontworpen om te voorkomen dat niet-geteste versiecombinaties van gerelateerde bits samen worden gebruikt in dezelfde app.

Toepassingen die gebruikmaken van de Microsoft.AspNetCore.App metapackage profiteren automatisch van het gedeelde ASP.NET Core-framework. Wanneer u de Microsoft.AspNetCore.App metapackage gebruikt, worden geen assets uit de verwante ASP.NET Core NuGet-pakketten geïmplementeerd met de toepassing—het gedeelde ASP.NET Core-framework bevat deze assets. De assets in het gedeelde framework zijn vooraf gecompileerd om de opstarttijd van toepassingen te verbeteren. Zie Het gedeelde frameworkvoor meer informatie.

Het volgende projectbestand verwijst naar de Microsoft.AspNetCore.App metapackage voor ASP.NET Core en vertegenwoordigt een typische ASP.NET Core 2.2-sjabloon:

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

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

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

</Project>

De voorgaande markeringen vertegenwoordigen een typische ASP.NET Core 2.x-sjabloon. Er wordt geen versienummer opgegeven voor de Microsoft.AspNetCore.App pakketreferentie. Wanneer de versie niet is opgegeven, wordt een impliciete versie opgegeven door de SDK, dat wil Microsoft.NET.Sdk.Webgezegd. We raden u aan te vertrouwen op de impliciete versie die is opgegeven door de SDK en niet expliciet het versienummer in te stellen op de pakketverwijzing. Als u vragen hebt over deze benadering, laat u een GitHub-opmerking achter in de discussie voor de impliciete versie van Microsoft.AspNetCore.App.

De impliciete versie is ingesteld op major.minor.0 voor draagbare apps. Met het mechanisme voor roll-forward van het gedeelde framework wordt de app uitgevoerd op de meest recente compatibele versie van de geïnstalleerde gedeelde frameworks. Als u wilt garanderen dat dezelfde versie wordt gebruikt in ontwikkeling, test en productie, moet u ervoor zorgen dat dezelfde versie van het gedeelde framework in alle omgevingen is geïnstalleerd. Voor zelfstandige apps wordt het impliciete versienummer ingesteld op het major.minor.patch gedeelde framework dat is gebundeld in de geïnstalleerde SDK.

Het opgeven van een versienummer in de Microsoft.AspNetCore.App verwijzing garandeert niet dat de versie van het gedeelde framework wordt gekozen. Stel dat versie 2.2.1 is opgegeven, maar '2.2.3' is geïnstalleerd. In dat geval gebruikt de app '2.2.3'. Hoewel dit niet wordt aanbevolen, kunt u roll forward (patch en/of minor) uitschakelen. Zie dotnet host roll-forward voor meer informatie over dotnet host roll-forward en hoe u het gedrag configureert.

<Project Sdk moet worden ingesteld op Microsoft.NET.Sdk.Web om de impliciete versie Microsoft.AspNetCore.App te gebruiken. Wanneer <Project Sdk="Microsoft.NET.Sdk"> (zonder de volg .Web) wordt gebruikt:

  • De volgende waarschuwing wordt gegenereerd:

    Waarschuwing NU1604: Projectafhankelijkheid Microsoft.AspNetCore.App bevat geen inclusieve ondergrens. Neem een ondergrens op in de afhankelijkheidsversie om consistente herstelresultaten te garanderen.

  • Dit is een bekend probleem met de .NET Core 2.1 SDK.

ASP.NET Core bijwerken

De Microsoft.AspNetCore.Appmetapackage is geen traditioneel pakket dat wordt bijgewerkt vanuit NuGet. Vergelijkbaar met Microsoft.NETCore.App, Microsoft.AspNetCore.App vertegenwoordigt een gedeelde runtime, die speciale versiebeheersemantiek heeft die buiten NuGet wordt verwerkt. Zie Pakketten, metapackages en frameworks voor meer informatie.

Ga als volgende te werk om ASP.NET Core bij te werken:

  • Op ontwikkelcomputers en buildservers: download en installeer de .NET Core SDK.
  • Op servers voor implementatie: download en installeer .NET Core-runtime.

Toepassingen worden doorgestuurd naar de meest recente geïnstalleerde versie bij het opnieuw opstarten van de toepassing. Het is niet nodig om het Microsoft.AspNetCore.App versienummer in het projectbestand bij te werken. Zie Framework-afhankelijke apps vooruitrollen voor meer informatie.

Als uw toepassing eerder Microsoft.AspNetCore.All heeft gebruikt, zie Migreren van Microsoft.AspNetCore.All naar Microsoft.AspNetCore.App.