Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
NuGet używa odwołań do platform docelowych w różnych miejscach, aby w szczególności identyfikować i izolować składniki zależne od struktury pakietu:
- plik projektu: w przypadku projektów w stylu zestawu SDK plik csproj zawiera odwołania do platformy docelowej.
- Manifest .nuspec: pakiet może wskazywać różne pakiety, które mają być uwzględnione w projekcie w zależności od struktury docelowej projektu.
-
Nazwa folderu .nupkg: foldery w folderze pakietu
libmogą być nazwane zgodnie z platformą docelową, z których każda zawiera biblioteki DLL i inną zawartość odpowiednią dla tej struktury. -
packages.config:
targetframeworkatrybut zależności określa wariant pakietu do zainstalowania.
Aby uzyskać listę kanoniczną wszystkich obsługiwanych platform docelowych i ich składni programu TFM, zobacz Platformy docelowe w projektach w stylu zestawu SDK.
Wartości targetFramework to aliasy
Właściwość TargetFramework w pliku projektu to przyjazna nazwa — alias — który jest tłumaczony na tożsamość platformy kanonicznej. Zestaw .NET SDK wykonuje to tłumaczenie, ustawiając TargetFrameworkMoniker (TFM) i, jeśli ma to zastosowanie, TargetPlatformMoniker właściwości.
Na przykład podczas pisania zestaw <TargetFramework>net10.0-windows</TargetFramework>SDK platformy .NET tłumaczy to na:
TargetFrameworkMoniker=.NETCoreApp,Version=v10.0TargetPlatformMoniker=Windows,Version=7.0
Narzędzie NuGet używa tych właściwości moniker — a nie TargetFramework ciągu — do sprawdzania zgodności pakietu. Oznacza to, że TargetFramework sama wartość może być dowolnym ciągiem, o ile właściwości moniker są ustawione poprawnie. Na przykład następujący projekt jest prawidłowy:
<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>
Ten projekt przywraca i kompiluje dla platformy .NET 10.0, mimo że TargetFramework wartość to banana. Zestaw SDK platformy .NET korzysta już z tego mechanizmu aliasowania dla systemów operacyjnych, takich jak net8.0-ios i net8.0-android, gdzie krótki program TFM jest tłumaczony na pełną nazwę z informacjami o platformie.
Wielowersyjność z zduplikowanymi strukturami
Począwszy od nuGet 7.6 / .NET SDK 10.0.300, wiele TargetFrameworks aliasów może rozpoznać tę samą efektywną strukturę. Umożliwia to korzystanie ze scenariuszy, takich jak kompilacje z wieloma identyfikatorami RID i określanie docelowych rozszerzeń z wieloma wersjami. Aby uzyskać szczegółowe informacje na temat sposobu pracy z przywracaniem, pakowaniem, blokowaniem plików i odwołaniami do projektu, zobacz Określanie kierowania wielu struktur.
Obsługiwane platformy
Struktura jest zwykle przywoływała krótka nazwa platformy docelowej lub TFM. W programie .NET Standard jest to również uogólnione do TxM , aby umożliwić pojedyncze odwołanie do wielu platform.
Uwaga / Notatka
Kod źródłowy klienta NuGet, który oblicza poniższe tabele, znajduje się w następujących lokalizacjach:
- Obsługiwane nazwy platform: FrameworkConstants.cs
- Pierwszeństwo i mapowanie struktury: DefaultFrameworkMappings.cs
Klienci NuGet obsługują struktury w poniższej tabeli. Odpowiedniki są wyświetlane w nawiasach []. Należy pamiętać, że niektóre narzędzia, takie jak dotnet, mogą używać odmian kanonicznych programu TFM w niektórych plikach. Na przykład dotnet pack używa elementu .NETCoreApp2.0 w .nuspec pliku, a nie netcoreapp2.0. Różne narzędzia klienckie NuGet obsługują te odmiany prawidłowo, ale zawsze należy używać kanonicznych programów TFM podczas bezpośredniej edycji plików.
| Nazwa | Abbreviation | TFMs/TxMs |
|---|---|---|
| .NET Framework | Netto | net11 |
| net20 | ||
| net35 | ||
| net40 | ||
| net403 | ||
| net45 | ||
| net451 | ||
| net452 | ||
| net46 | ||
| net461 | ||
| net462 | ||
| net47 | ||
| net471 | ||
| net472 | ||
| net48 | ||
| Microsoft Store (Sklep Windows) | netcore | netcore [netcore45] |
| netcore45 [win, win8] | ||
| netcore451 [win81] | ||
| netcore50 | ||
| Mikroframework platformy .NET | netmf | netmf |
| Windows | wygrać | win [win8, netcore45] |
| win8 [netcore45, win] | ||
| win81 [netcore451] | ||
| win10 (nieobsługiwana przez platformę Windows 10) | ||
| Silverlight | Sl | sl4 |
| sl5 | ||
| Windows Phone (SL) | Wp | wp [wp7] |
| wp7 | ||
| wp75 | ||
| wp8 | ||
| wp81 | ||
| Windows Phone (UWP) | wpa81 | |
| platforma uniwersalna systemu Windows | Uap | uap [uap10.0] |
| uap10.0 | ||
| uap10.0.xxxxx (gdzie 10.0.xxxxx to docelowa minimalna wersja aplikacji zużywanej) | ||
| .NET Standard | netstandard | netstandard1.0 |
| netstandard1.1 | ||
| netstandard1.2 | ||
| netstandard1.3 | ||
| netstandard1.4 | ||
| netstandard1.5 | ||
| netstandard1.6 | ||
| netstandard2.0 | ||
| netstandard2.1 | ||
| .NET 5+ (i .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 | ||
| Native | macierzysty | macierzysty |
Przestarzałe struktury
Następujące struktury są przestarzałe. Pakiety przeznaczone dla tych struktur powinny zostać zmigrowane do wskazanych zastąpień.
| Przestarzała struktura | Replacement |
|---|---|
| aspnet50 | netcoreapp |
| aspnetcore50 | |
| dnxcore50 | |
| Dnx | |
| dnx45 | |
| dnx451 | |
| dnx452 | |
| dotnet | netstandard |
| dotnet50 | |
| dotnet51 | |
| dotnet52 | |
| dotnet53 | |
| dotnet54 | |
| dotnet55 | |
| dotnet56 | |
| winrt | wygrać |
Precedence
Wiele struktur jest powiązanych i zgodnych ze sobą, ale niekoniecznie równoważnych:
| Framework | Można używać |
|---|---|
| uap (platforma uniwersalna systemu Windows) | Windows 8.1 |
| wpa81 | |
| netcore50 | |
| win (Microsoft Store) | winrt |
NET Standard
Platforma .NET Standard upraszcza odwołania między strukturami zgodnymi z binarnymi, umożliwiając pojedynczej strukturze docelowej odwołanie do kombinacji innych. (Aby uzyskać informacje w tle, zobacz .NET Primer).
Narzędzie NuGet Get Nearest Framework Tool symuluje użycie narzędzia NuGet w celu wybrania jednej struktury z wielu dostępnych zasobów platformy w pakiecie na podstawie struktury projektu.
Seria dotnet monikers powinna być używana w nuGet 3.3 i starszych wersjach. Składnia netstandard moniker powinna być używana w wersji 3.4 lub nowszej.
Przenośne biblioteki klas
Ostrzeżenie
Listy PCL nie są zalecane. Mimo że listy PCLS są obsługiwane, autorzy pakietów powinni zamiast tego obsługiwać netstandard. Platforma .NET Standard to ewolucja list PCLs i reprezentuje przenośność binarną na różnych platformach przy użyciu pojedynczego monikera, który nie jest powiązany z biblioteką statyczną, na przykład portable-a+b+c monikers.
Aby zdefiniować platformę docelową odwołującą się do wielu struktur podrzędnych docelowych, portable słowo kluczowe służy do prefiksu listy odwołań struktur. Unikaj sztucznego dołączania dodatkowych struktur, które nie są bezpośrednio kompilowane, ponieważ może to prowadzić do niezamierzonych skutków ubocznych w tych strukturach.
Dodatkowe struktury zdefiniowane przez inne firmy zapewniają zgodność z innymi środowiskami, które są w ten sposób dostępne. Ponadto istnieją skrócone numery profilów, które są dostępne do odwoływania się do tych kombinacji powiązanych struktur jako Profile#, ale nie jest to zalecana praktyka używania tych liczb, ponieważ zmniejsza czytelność folderów i .nuspec.
| Profil # | Frameworki | Imię i nazwisko | .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) |
Ponadto pakiety NuGet przeznaczone dla platformy Xamarin mogą używać dodatkowych struktur zdefiniowanych przez platformę Xamarin:
| Nazwa | Opis | .NET Standard |
|---|---|---|
| monoandroid | Obsługa mono dla systemu operacyjnego Android | netstandard1.4 |
| monotouch | Obsługa mono dla systemu iOS | netstandard1.4 |
| monomac | Obsługa mono dla systemu OSX | netstandard1.4 |
| xamarinios | Obsługa platformy Xamarin dla systemu iOS | netstandard1.4 |
| xamarinmac | Obsługa platformy Xamarin dla komputerów Mac | netstandard1.4 |
| xamarinpsthree | Obsługa platformy Xamarin w programie Playstation 3 | netstandard1.4 |
| xamarinpsfour | Obsługa platformy Xamarin na playstation 4 | netstandard1.4 |
| xamarinpsvita | Obsługa platformy Xamarin w programie PS Vita | netstandard1.4 |
| xamarinwatchos | Xamarin for Watch OS | netstandard1.4 |
| xamarintvos | Xamarin dla systemu operacyjnego TV | netstandard1.4 |
| xamarinxboxthreesixty | Xamarin dla XBox 360 | netstandard1.4 |
| xamarinxboxone | Xamarin dla XBox One | netstandard1.4 |
Uwaga / Notatka
Stephen Cleary utworzył narzędzie, które zawiera listę obsługiwanych list PCLs, które można znaleźć w swoim wpisie, profile platformy Framework na platformie .NET.