Microsoft.AspNetCore.App für ASP.NET Core
Hinweis
Dies ist nicht die neueste Version dieses Artikels. Die aktuelle Version finden Sie in der .NET 9-Version dieses Artikels.
Warnung
Diese Version von ASP.NET Core wird nicht mehr unterstützt. Weitere Informationen finden Sie in der .NET- und .NET Core-Supportrichtlinie. Die aktuelle Version finden Sie in der .NET 9-Version dieses Artikels.
Wichtig
Diese Informationen beziehen sich auf ein Vorabversionsprodukt, das vor der kommerziellen Freigabe möglicherweise noch wesentlichen Änderungen unterliegt. Microsoft gibt keine Garantie, weder ausdrücklich noch impliziert, hinsichtlich der hier bereitgestellten Informationen.
Die aktuelle Version finden Sie in der .NET 9-Version dieses Artikels.
Das freigegebene ASP.NET Core-Framework (Microsoft.AspNetCore.App
) enthält Assemblys, die von Microsoft entwickelt und unterstützt werden. Microsoft.AspNetCore.App
wird bei der Installation des SDK für .NET Core 3.0 oder höher installiert. Das freigegebene Framework ist der Satz von Assemblys (DLL-Dateien), die auf dem Computer installiert werden und eine Laufzeitkomponente sowie ein Zielpaket enthalten. Weitere Informationen finden Sie unter The shared framework (Das freigegebene Framework).
- Projekte, die auf das
Microsoft.NET.Sdk.Web
SDK abzielen, verweisen implizit auf dasMicrosoft.AspNetCore.App
-Framework.
Für diese Projekte sind keine weiteren Verweise erforderlich:
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>netcoreapp3.0</TargetFramework>
</PropertyGroup>
...
</Project>
Für das freigegebene ASP.NET Core-Framework gilt Folgendes:
- Es enthält keine Abhängigkeiten von Drittanbietern.
- Es enthält alle unterstützten Pakete des ASP.NET Core-Teams.
Für dieses Feature ist ASP.NET Core 2.x für .NET Core 2.x erforderlich.
Das Microsoft.AspNetCore.App-Metapaket für ASP.NET Core:
- Enthält keine Drittanbieterabhängigkeiten außer Json.NET, Remotion.Linq und IX-Async. Diese Drittanbieterabhängigkeiten sind erforderlich, damit die Features der wichtigsten Frameworks funktionieren.
- Enthält alle unterstützten Pakete des ASP.NET Core-Teams außer denen, die Drittanbieterabhängigkeiten enthalten (von den bereits erwähnten abgesehen).
- Enthält alle unterstützten Pakete des Entity Framework Core-Teams außer denen, die Drittanbieterabhängigkeiten enthalten (von den bereits erwähnten abgesehen).
In dem Paket Microsoft.AspNetCore.App
sind alle Features von ASP.NET Core 2.x und Entity Framework Core 2.x enthalten. Die Standardprojektvorlagen für ASP.NET Core 2.x verwenden dieses Paket. Es wird empfohlen, dass Anwendungen für ASP.NET Core 2.x und Entity Framework Core 2.x das Microsoft.AspNetCore.App
-Paket verwenden.
Die Versionsnummer des Microsoft.AspNetCore.App
-Metapakets gibt die erforderlichen Mindestversionen von ASP.NET Core und Entity Framework Core an.
Durch die Verwendung des Metapakets Microsoft.AspNetCore.App
werden Versionseinschränkungen bereitgestellt, die Ihre App schützen:
- Wenn ein Paket enthalten wird, das eine transitive (nicht direkte) Abhängigkeit von einem Paket in
Microsoft.AspNetCore.App
besitzt und diese Versionsnummern sich unterscheiden, generiert NuGet einen Fehler. - Andere Pakete, die zu Ihrer App hinzugefügt werden, können die Version der in
Microsoft.AspNetCore.App
enthaltenen Pakete nicht ändern. - Die Konsistenz von Versionen stellt eine zuverlässige Verwendbarkeit sicher.
Microsoft.AspNetCore.App
wurde dafür entwickelt, um nicht getestete Versionskombinationen von verwandten Komponenten zu verhindern, die in derselben App zusammen verwendet werden.
Anwendungen, die das Metapaket Microsoft.AspNetCore.App
verwenden, profitieren automatisch vom freigegebenen ASP.NET Core-Framework. Bei Verwendung des Metapakets Microsoft.AspNetCore.App
werden keine Objekte aus den referenzierten NuGet-Paketen für ASP.NET Core mit der Anwendung bereitgestellt. Das freigegebene ASP.NET Core-Framework enthält diese Objekte. Die Objekte im freigegebenen Framework sind zur Verbesserung der Startzeit der Anwendung vorkompiliert. Weitere Informationen finden Sie unter The shared framework (Das freigegebene Framework).
Die folgende Projektdatei verweist auf das Metapaket Microsoft.AspNetCore.App
für ASP.NET Core und stellt eine typische ASP.NET Core 2.2-Vorlage dar:
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>netcoreapp2.2</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.App" />
</ItemGroup>
</Project>
Das hier angegebene Markup stellt eine typische ASP.NET Core 2.x-Vorlage dar. Es gibt keine Versionsnummer für den Paketverweis Microsoft.AspNetCore.App
an. Wenn die Version nicht angegeben wird, wird vom SDK eine implizite Version angegeben (Microsoft.NET.Sdk.Web
). Es wird empfohlen, die vom SDK angegebene implizite Version beizubehalten, statt die Versionsnummer im Paketverweis explizit festzulegen. Wenn Sie Fragen zu dieser Vorgehensweise haben, können Sie einen GitHub-Kommentar unter Discussion for the Microsoft.AspNetCore.App implicit version (Diskussion zur impliziten Version für Microsoft.AspNetCore.App) verfassen.
Die implizite Version wird auf major.minor.0
festgelegt, wenn es sich um Apps für Mobilgeräte handelt. Der Rollforwardmechanismus des freigegebenen Frameworks führt die App auf der neuesten kompatiblen Version der installierten freigegebenen Frameworks aus. Stellen Sie sicher, dass die gleiche Version des freigegebenen Frameworks in allen Umgebungen installiert ist, um zu gewährleisten, dass die gleiche Version bei der Entwicklung, beim Testen und in der Produktion verwendet wird. Bei unabhängigen Apps wird die implizite Versionsnummer auf die Versionsnummer major.minor.patch
des freigegebenen Frameworks festgelegt, das im installierten SDK zusammengefasst ist.
Das Angeben einer Versionsnummer im Microsoft.AspNetCore.App
-Verweis garantiert nicht, dass diese Version des freigegebenen Frameworks ausgewählt wird. Ein Beispiel: Version 2.2.1 ist angegeben, aber Version 2.2.3 ist installiert. In diesem Fall verwendet die App die Version 2.2.3. Sie können den Rollforward (für „patch“ und/oder „minor“) deaktivieren. Dies wird jedoch nicht empfohlen. Weitere Informationen zum Rollforward des dotnet-Hosts und der Konfiguration seines Verhaltens finden Sie unter dotnet host roll forward (Rollforward des dotnet-Hosts).
Für <Project Sdk
muss Microsoft.NET.Sdk.Web
festgelegt werden, um die implizite Version Microsoft.AspNetCore.App
verwenden zu können. Wenn <Project Sdk="Microsoft.NET.Sdk">
(ohne nachgestelltes .Web
) verwendet wird:
Die folgende Warnung wird generiert:
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. (Warnung NU1604: Die Projektabhängigkeit „Microsoft.AspNetCore.App“ enthält keine einschließliche Untergrenze. Schließen Sie eine Untergrenze in die Abhängigkeitsversion ein, um konsistente Wiederherstellungsergebnisse zu erzielen.)
Dies ist ein bekanntes Problem mit dem .NET Core 2.1 SDK.
Aktualisieren von ASP.NET Core
Das Metapaket Microsoft.AspNetCore.App
zählt nicht zu den herkömmlichen Paketen, die über NuGet aktualisiert werden. Ähnlich wie bei Microsoft.NETCore.App
stellt Microsoft.AspNetCore.App
eine freigegebene Runtime dar, die über eine spezielle Semantik für die Versionsverwaltung verfügt, die außerhalb von NuGet behandelt wird. Weitere Informationen finden Sie unter Pakete, Metapakete und Frameworks.
So aktualisieren Sie ASP.NET Core:
- Auf den Entwicklungscomputern und Buildservern: Laden Sie das .NET Core SDK herunter, und installieren Sie es.
- Auf Bereitstellungsservern: Laden Sie die .NET Core-Runtime herunter, und installieren Sie sie.
Für Anwendungen wird beim Neustart der Anwendungen ein Rollforward auf die neueste installierte Version ausgeführt. Die Versionsnummer von Microsoft.AspNetCore.App
muss in der Projektdatei nicht aktualisiert werden. Weitere Informationen finden Sie unter Von Frameworks abhängige Apps führen einen Rollforward aus.
Wenn Ihre Anwendung zuvor Microsoft.AspNetCore.All
verwendet hat, finden Sie weitere Informationen unter Migrieren von Microsoft.AspNetCore.All zu Microsoft.AspNetCore.App.