Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
NuGet verwendet Zielframeworkverweise an verschiedenen Stellen, um frameworkabhängige Komponenten eines Pakets gezielt zu identifizieren und zu isolieren:
- Projektdatei: Für PROJEKTE im SDK-Stil enthält csproj die Zielframeworkverweise.
- .nuspec manifest: Ein Paket kann je nach Zielframework des Projekts unterschiedliche Pakete angeben, die in einem Projekt enthalten sein sollen.
-
.nupkg-Ordnername: Die Ordner innerhalb des Ordners eines Pakets
libkönnen gemäß dem Zielframework benannt werden, von denen jede die DLLs und andere Inhalte enthält, die für dieses Framework geeignet sind. -
packages.config: Das
targetframeworkAttribut einer Abhängigkeit gibt die Variante eines zu installierenden Pakets an.
Die kanonische Liste aller unterstützten Zielframeworks und deren TFM-Syntax finden Sie unter Target Frameworks in SDK-Formatprojekten.
TargetFramework-Werte sind Aliase
Die TargetFramework Eigenschaft in einer Projektdatei ist ein Anzeigename – ein Alias – der in eine kanonische Frameworkidentität übersetzt wird. Das .NET SDK führt diese Übersetzung durch Festlegen der TargetFrameworkMoniker (TFM) und ggf. der TargetPlatformMoniker Eigenschaften durch.
Wenn Sie z. B. schreiben <TargetFramework>net10.0-windows</TargetFramework>, übersetzt das .NET SDK folgendes in:
TargetFrameworkMoniker=.NETCoreApp,Version=v10.0TargetPlatformMoniker=Windows,Version=7.0
NuGet verwendet diese Moniker-Eigenschaften – nicht die TargetFramework Zeichenfolge – für Paketkompatibilitätsprüfungen. Dies bedeutet, dass der TargetFramework Wert selbst eine beliebige Zeichenfolge sein kann, solange die Moniker-Eigenschaften richtig festgelegt sind. Das folgende Projekt ist beispielsweise gültig:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>banana</TargetFramework>
</PropertyGroup>
<PropertyGroup Condition=" '$(TargetFramework)' == 'banana' ">
<TargetFrameworkIdentifier>.NETCoreApp</TargetFrameworkIdentifier>
<TargetFrameworkVersion>v10.0</TargetFrameworkVersion>
<TargetFrameworkMoniker>.NETCoreApp,Version=v10.0</TargetFrameworkMoniker>
</PropertyGroup>
</Project>
Dieses Projekt stellt .NET 10.0 wiederhergestellt und builds her, auch wenn der TargetFramework Wert lautet banana. Das .NET SDK basiert bereits auf diesem Aliasingmechanismus für osspezifische TFMs wie net8.0-ios und net8.0-android, wo der kurze TFM in den vollständigen Moniker mit Plattforminformationen übersetzt wird.
Multiadressierung mit doppelten Frameworks
Ab NuGet 7.6 / .NET SDK 10.0.300 können mehrere TargetFrameworks Aliase in dasselbe effektive Framework aufgelöst werden. Dies ermöglicht Szenarien wie Multi-RID-Builds und Die Zielbestimmung für die Multiversionserweiterung. Ausführliche Informationen dazu, wie dies mit Wiederherstellungs-, Pack-, Sperrdateien und Projektreferenzen funktioniert, finden Sie unter "Zielgruppenadressierung mehrerer Frameworks".
Unterstützte Frameworks
Auf ein Framework wird in der Regel von einem kurzen Zielframework-Moniker oder TFM verwiesen. In .NET Standard wird dies auch auf TxM generalisiert, um einen einzelnen Verweis auf mehrere Frameworks zuzulassen.
Hinweis
Der NuGet-Clientquellcode, der die folgenden Tabellen berechnet, finden Sie an den folgenden Speicherorten:
- Unterstützte Frameworknamen: FrameworkConstants.cs
- Rangfolge und Zuordnung des Frameworks: DefaultFrameworkMappings.cs
Die NuGet-Clients unterstützen die Frameworks in der folgenden Tabelle. Entsprechungen werden in eckigen Klammern [] angezeigt. Beachten Sie, dass einige Tools wie z dotnet. B. Variationen von kanonischen TFMs in einigen Dateien verwenden können. Wird z. B dotnet pack.NETCoreApp2.0 . in einer .nuspec Datei anstelle von netcoreapp2.0. Die verschiedenen NuGet-Clienttools behandeln diese Variationen ordnungsgemäß, sollten jedoch beim direkten Bearbeiten von Dateien immer kanonische TFMs verwenden.
| Name | Abkürzung | TFMs/TxMs |
|---|---|---|
| .NET Framework | netto | net11 |
| net20 | ||
| net35 | ||
| net40 | ||
| net403 | ||
| net45 | ||
| net451 | ||
| net452 | ||
| net46 | ||
| net461 | ||
| net462 | ||
| net47 | ||
| net471 | ||
| net472 | ||
| net48 | ||
| Microsoft Store (Windows Store) | Netcore | netcore [netcore45] |
| netcore45 [win, win8] | ||
| netcore451 [win81] | ||
| netcore50 | ||
| .NET MicroFramework | netmf | netmf |
| Windows | gewinnen | win [win8; netcore45] |
| win8 [netcore45, win] | ||
| win81 [netcore451] | ||
| win10 (nicht unterstützt von der Windows 10-Plattform) | ||
| Silverlight | Sl | sl4 |
| sl5 | ||
| Windows Phone (SL) | Wp | wp [wp7] |
| wp7 | ||
| wp75 | ||
| wp8 | ||
| wp81 | ||
| Windows Phone (UWP) | wpa81 | |
| Universelle Windows-Plattform | Uap | uap [uap10.0] |
| uap10.0 | ||
| uap10.0.xxxxx (wobei 10.0.xxxxx die Zielplattform-Min-Version der verbrauchenden App ist) | ||
| .NET-Standard | netstandard | netstandard1.0 |
| netstandard1.1 | ||
| netstandard1.2 | ||
| netstandard1.3 | ||
| netstandard1.4 | ||
| netstandard1.5 | ||
| netstandard1.6 | ||
| netstandard2.0 | ||
| netstandard2.1 | ||
| .NET 5+ (und .NET Core) | netcoreapp | netcoreapp1.0 |
| netcoreapp1.1 | ||
| netcoreapp2.0 | ||
| netcoreapp2.1 | ||
| netcoreapp2.2 | ||
| netcoreapp3.0 | ||
| netcoreapp3.1 | ||
| netto | net5.0 | |
| net6.0 | ||
| net7.0 | ||
| net8.0 | ||
| net9.0 | ||
| net10.0 | ||
| Tizen | tizen | tizen3 |
| tizen4 | ||
| Einheimisch | Systemeigen | Systemeigen |
Veraltete Frameworks
Die folgenden Frameworks sind veraltet. Pakete für diese Frameworks sollten zu den angegebenen Ersetzungen migriert werden.
| Veraltetes Framework | Ersetzung |
|---|---|
| aspnet50 | netcoreapp |
| aspnetcore50 | |
| dnxcore50 | |
| Dnx | |
| dnx45 | |
| dnx451 | |
| dnx452 | |
| dotnet | netstandard |
| dotnet50 | |
| dotnet51 | |
| dotnet52 | |
| dotnet53 | |
| dotnet54 | |
| dotnet55 | |
| dotnet56 | |
| winrt | gewinnen |
Vorrang
Eine Reihe von Frameworks bezieht sich auf und ist miteinander kompatibel, aber nicht notwendigerweise gleichwertig:
| Rahmenwerk | Kann verwenden |
|---|---|
| uap (Universelle Windows-Plattform) | Windows 8.1 |
| wpa81 | |
| netcore50 | |
| win (Microsoft Store) | winrt |
NET Standard
.NET Standard vereinfacht Verweise zwischen binärkompatiblen Frameworks, sodass ein einzelnes Zielframework auf eine Kombination anderer verweisen kann. (Hintergrund finden Sie unter .NET Primer.)
Das NuGet Get Nearest Framework Tool simuliert, was NuGet verwendet, um ein Framework aus vielen verfügbaren Frameworkressourcen in einem Paket basierend auf dem Framework des Projekts auszuwählen.
Die dotnet Reihe von Monikern sollte in NuGet 3.3 und früher verwendet werden; die netstandard Monikersyntax sollte in v3.4 und höher verwendet werden.
Portable Klassenbibliotheken
Warnung
PCLs werden nicht empfohlen. Obwohl PCLs unterstützt werden, sollten Paketautoren stattdessen netstandard unterstützen. Der .NET Platform Standard ist eine Weiterentwicklung von PCLs und stellt binäre Portabilität über Plattformen hinweg dar, wobei ein einzelner Moniker verwendet wird, der nicht an eine statische Bibliothek wie portable-a+b+c moniker gebunden ist.
Um ein Zielframework zu definieren, das sich auf mehrere untergeordnete Zielframeworks bezieht, wird das portable Schlüsselwort verwendet, das zum Präfix der Liste der referenzierten Frameworks verwendet wird. Vermeiden Sie künstliches Einschließen von zusätzlichen Frameworks, die nicht direkt kompiliert werden, da sie zu unbeabsichtigten Nebenwirkungen in diesen Frameworks führen kann.
Zusätzliche von Drittanbietern definierte Frameworks bieten Kompatibilität mit anderen Umgebungen, auf die auf diese Weise zugegriffen werden kann. Darüber hinaus gibt es Kurzprofilnummern, die zur Referenz auf diese Kombinationen verwandter Frameworks verfügbar sind, Profile#aber dies ist keine empfohlene Methode, diese Zahlen zu verwenden, da sie die Lesbarkeit der Ordner und .nuspecder .
| Profil # | Rahmenwerke | Vollständiger Name | .NET-Standard |
|---|---|---|---|
| Profil2 | . NETFramework 4.0 | portable-net40+win8+sl4+wp7 | |
| Windows 8.0 | |||
| Silverlight 4.0 | |||
| WindowsPhone 7.0 | |||
| Profil3 | . NETFramework 4.0 | portable-net40+sl4 | |
| Silverlight 4.0 | |||
| Profil4 | . NETFramework 4.5 | portable-net45+sl4+win8+wp7 | |
| Silverlight 4.0 | |||
| Windows 8.0 | |||
| WindowsPhone 7.0 | |||
| Profil5 | . NETFramework 4.0 | portable-net40+win8 | |
| Windows 8.0 | |||
| Profil6 | . NETFramework 4.0.3 | portable-net403+win8 | |
| Windows 8.0 | |||
| Profil7 | . NETFramework 4.5 | portable-net45+win8 | netstandard1.1 |
| Windows 8.0 | |||
| Profil14 | . NETFramework 4.0 | portable-net40+sl5 | |
| Silverlight 5.0 | |||
| Profil18 | . NETFramework 4.0.3 | portable-net403+sl4 | |
| Silverlight 4.0 | |||
| Profil19 | . NETFramework 4.0.3 | portable-net403+sl5 | |
| Silverlight 5.0 | |||
| Profil23 | . NETFramework 4.5 | portable-net45+sl4 | |
| Silverlight 4.0 | |||
| Profil24 | . NETFramework 4.5 | portable-net45+sl5 | |
| Silverlight 5.0 | |||
| Profil31 | Windows 8.1 | portable-win81+wp81 | netstandard1.0 |
| WindowsPhone 8.1 (SL) | |||
| Profil32 | Windows 8.1 | portable-win81+wpa81 | netstandard1.2 |
| WindowsPhone 8.1 (UWP) | |||
| Profil36 | . NETFramework 4.0 | portable-net40+sl4+win8+wp8 | |
| Silverlight 4.0 | |||
| Windows 8.0 | |||
| WindowsPhone 8.0 (SL) | |||
| Profil37 | . NETFramework 4.0 | portable-net40+sl5+win8 | |
| Silverlight 5.0 | |||
| Windows 8.0 | |||
| Profil41 | . NETFramework 4.0.3 | portable-net403+sl4+win8 | |
| Silverlight 4.0 | |||
| Windows 8.0 | |||
| Profil42 | . NETFramework 4.0.3 | portable-net403+sl5+win8 | |
| Silverlight 5.0 | |||
| Windows 8.0 | |||
| Profil44 | . NETFramework 4.5.1 | portable-net451+win81 | netstandard1.2 |
| Windows 8.1 | |||
| Profil46 | . NETFramework 4.5 | portable-net45+sl4+win8 | |
| Silverlight 4.0 | |||
| Windows 8.0 | |||
| Profil47 | . NETFramework 4.5 | portable-net45+sl5+win8 | |
| Silverlight 5.0 | |||
| Windows 8.0 | |||
| Profil49 | . NETFramework 4.5 | portable-net45+wp8 | netstandard1.0 |
| WindowsPhone 8.0 (SL) | |||
| Profil78 | . NETFramework 4.5 | portable-net45+win8+wp8 | netstandard1.0 |
| Windows 8.0 | |||
| WindowsPhone 8.0 (SL) | |||
| Profil84 | WindowsPhone 8.1 | portable-wp81+wpa81 | netstandard1.0 |
| WindowsPhone 8.1 (UWP) | |||
| Profil88 | . NETFramework 4.0 | portable-net40+sl4+win8+wp75 | |
| Silverlight 4.0 | |||
| Windows 8.0 | |||
| WindowsPhone 7.5 | |||
| Profil92 | . NETFramework 4.0 | portable-net40+win8+wpa81 | |
| Windows 8.0 | |||
| WindowsPhone 8.1 (UWP) | |||
| Profil95 | . NETFramework 4.0.3 | portable-net403+sl4+win8+wp7 | |
| Silverlight 4.0 | |||
| Windows 8.0 | |||
| WindowsPhone 7.0 | |||
| Profil96 | . NETFramework 4.0.3 | portable-net403+sl4+win8+wp75 | |
| Silverlight 4.0 | |||
| Windows 8.0 | |||
| WindowsPhone 7.5 | |||
| Profil102 | . NETFramework 4.0.3 | portable-net403+win8+wpa81 | |
| Windows 8.0 | |||
| WindowsPhone 8.1 (UWP) | |||
| Profil104 | . NETFramework 4.5 | portable-net45+sl4+win8+wp75 | |
| Silverlight 4.0 | |||
| Windows 8.0 | |||
| WindowsPhone 7.5 | |||
| Profil111 | . NETFramework 4.5 | portable-net45+win8+wpa81 | netstandard1.1 |
| Windows 8.0 | |||
| WindowsPhone 8.1 (UWP) | |||
| Profil136 | . NETFramework 4.0 | portable-net40+sl5+win8+wp8 | |
| Silverlight 5.0 | |||
| Windows 8.0 | |||
| WindowsPhone 8.0 (SL) | |||
| Profil143 | . NETFramework 4.0.3 | portable-net403+sl4+win8+wp8 | |
| Silverlight 4.0 | |||
| Windows 8.0 | |||
| WindowsPhone 8.0 (SL) | |||
| Profil147 | . NETFramework 4.0.3 | portable-net403+sl5+win8+wp8 | |
| Silverlight 5.0 | |||
| Windows 8.0 | |||
| WindowsPhone 8.0 (SL) | |||
| Profil151 | NETFramework 4.5.1 | portable-net451+win81+wpa81 | netstandard1.2 |
| Windows 8.1 | |||
| WindowsPhone 8.1 (UWP) | |||
| Profil154 | . NETFramework 4.5 | portable-net45+sl4+win8+wp8 | |
| Silverlight 4.0 | |||
| Windows 8.0 | |||
| WindowsPhone 8.0 (SL) | |||
| Profil157 | Windows 8.1 | portable-win81+wp81+wpa81 | netstandard1.0 |
| WindowsPhone 8.1 (SL) | |||
| WindowsPhone 8.1 (UWP) | |||
| Profil158 | . NETFramework 4.5 | portable-net45+sl5+win8+wp8 | |
| Silverlight 5.0 | |||
| Windows 8.0 | |||
| WindowsPhone 8.0 (SL) | |||
| Profil225 | . NETFramework 4.0 | portable-net40+sl5+win8+wpa81 | |
| Silverlight 5.0 | |||
| Windows 8.0 | |||
| WindowsPhone 8.1 (UWP) | |||
| Profil240 | . NETFramework 4.0.3 | portable-net403+sl5+win8+wpa8 | |
| Silverlight 5.0 | |||
| Windows 8.0 | |||
| WindowsPhone 8.1 (UWP) | |||
| Profil255 | . NETFramework 4.5 | portable-net45+sl5+win8+wpa81 | |
| Silverlight 5.0 | |||
| Windows 8.0 | |||
| WindowsPhone 8.1 (UWP) | |||
| Profil259 | . NETFramework 4.5 | portable-net45+win8+wpa81+wp8 | netstandard1.0 |
| Windows 8.0 | |||
| WindowsPhone 8.1 (UWP) | |||
| WindowsPhone 8.0 (SL) | |||
| Profil328 | . NETFramework 4.0 | portable-net40+sl5+win8+wpa81+wp8 | |
| Silverlight 5.0 | |||
| Windows 8.0 | |||
| WindowsPhone 8.1 (UWP) | |||
| WindowsPhone 8.0 (SL) | |||
| Profil336 | . NETFramework 4.0.3 | portable-net403+sl5+win8+wpa81+wp8 | |
| Silverlight 5.0 | |||
| Windows 8.0 | |||
| WindowsPhone 8.1 (UWP) | |||
| WindowsPhone 8.0 (SL) | |||
| Profil344 | . NETFramework 4.5 | portable-net45+sl5+win8+wpa81+wp8 | |
| Silverlight 5.0 | |||
| Windows 8.0 | |||
| WindowsPhone 8.1 (UWP) | |||
| WindowsPhone 8.0 (SL) |
Darüber hinaus können NuGet-Pakete für Xamarin zusätzliche Xamarin-definierte Frameworks verwenden:
| Name | Beschreibung | .NET-Standard |
|---|---|---|
| Monoandroid | Mono-Unterstützung für Android-Betriebssystem | netstandard1.4 |
| Monotouch | Mono-Unterstützung für iOS | netstandard1.4 |
| Monomac | Mono-Unterstützung für OSX | netstandard1.4 |
| xamarinios | Unterstützung für Xamarin für iOS | netstandard1.4 |
| xamarinmac | Unterstützt für Xamarin für Mac | netstandard1.4 |
| xamarinpsthree | Unterstützung für Xamarin auf Playstation 3 | netstandard1.4 |
| xamarinpsfour | Unterstützung für Xamarin auf Playstation 4 | netstandard1.4 |
| xamarinpsvita | Unterstützung für Xamarin auf PS Vita | netstandard1.4 |
| xamarinwatchos | Xamarin für Watch OS | netstandard1.4 |
| xamarintvos | Xamarin für TV OS | netstandard1.4 |
| xamarinxboxthreesixty | Xamarin für XBox 360 | netstandard1.4 |
| xamarinxboxone | Xamarin für XBox One | netstandard1.4 |
Hinweis
Stephen Cleary hat ein Tool erstellt, das die unterstützten PCLs auflistet, die Sie in seinem Beitrag, Framework-Profile in .NET finden können.