Cél-keretrendszerek

A NuGet számos helyen használ cél-keretrendszer-hivatkozásokat a csomag keretrendszerfüggő összetevőinek konkrét azonosítására és elkülönítésére:

  • projektfájl: SDK-stílusú projektek esetén a .csproj tartalmazza a cél-keretrendszer hivatkozásait.
  • .nuspec jegyzék: A csomagok a projekt célkeretétől függően különböző csomagokat jelezhetnek a projektben.
  • .nupkg mappa neve: A csomag mappájában lib lévő mappák a cél keretrendszer szerint nevezhetők el, amelyek mindegyike tartalmazza az adott keretrendszernek megfelelő DLL-eket és egyéb tartalmakat.
  • packages.config: A targetframework függőség attribútuma határozza meg a telepíteni kívánt csomag variánsát.

Az összes támogatott cél-keretrendszer és azok TFM-szintaxisának canonikus listájáért lásd: Target frameworks in SDK-style projects.

A TargetFramework-értékek aliasok

A TargetFramework projektfájl tulajdonsága egy rövid név – alias –, amelyet a rendszer lefordít egy canonical framework identity-ra. A .NET SDK ezt a fordítást a TargetFrameworkMoniker (TFM) beállításával és adott esetben a tulajdonságok beállításával hajtja végre TargetPlatformMoniker .

Íráskor <TargetFramework>net10.0-windows</TargetFramework>például a .NET SDK a következőre fordítja:

  • TargetFrameworkMoniker = .NETCoreApp,Version=v10.0
  • TargetPlatformMoniker = Windows,Version=7.0

A NuGet ezeket a monikertulajdonságokat használja – nem a sztringet – a TargetFramework csomagkompatibilitás-ellenőrzésekhez. Ez azt jelenti, hogy maga az TargetFramework érték bármilyen sztring lehet, amíg a moniker tulajdonságai helyesen vannak beállítva. Például a következő projekt érvényes:

<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>

Ez a projekt visszaállítja és létrehozza a .NET 10.0-t, annak ellenére, hogy az érték .TargetFrameworkbanana A .NET SDK már támaszkodik erre az aliasozási mechanizmusra az olyan operációsrendszer-specifikus TFM-ek esetében, mint net8.0-ios és net8.0-androidahol a rövid TFM-et a platforminformációkkal rendelkező teljes monikerre fordítják le.

Többszörös célzás ismétlődő keretrendszerekkel

A NuGet 7.6 / .NET SDK 10.0.300-tól kezdve több TargetFrameworks alias is feloldható ugyanahhoz a hatékony keretrendszerhez. Ez olyan forgatókönyveket tesz lehetővé, mint a több-RID-buildek és a többverziós bővítmények célzása. A visszaállítás, a csomagok, a fájlok zárolása és a projekthivatkozások működésének részleteiért lásd : Több keretrendszer megcélzása.

Támogatott keretrendszerek

A keretrendszerre általában egy rövid cél-keretrendszer-moniker vagy TFM hivatkozik. A .NET Standardban ez a TxM-hez is általánosított, hogy egyetlen hivatkozás több keretrendszerre is hivatkozzon.

Megjegyzés:

Az alábbi táblákat kiszámító NuGet-ügyfél forráskódja a következő helyeken található:

A NuGet-ügyfelek támogatják az alábbi táblázatban szereplő keretrendszereket. A megfelelők szögletes zárójelben jelennek meg []. Vegye figyelembe, hogy egyes eszközök, például dotnetegyes fájlokban a canonical TFM-ek változatai használhatók. Például nem dotnet pack a fájlban, hanem netcoreapp2.0a .nuspec fájlban használ.NETCoreApp2.0. A különböző NuGet-ügyféleszközök megfelelően kezelik ezeket a változatokat, de a fájlok közvetlen szerkesztésekor mindig használjon canonical TFM-eket.

Név Rövidítés TFM-k/TxM-ek
.NET-keretrendszer Nettó net11
net20
net35
net40
net403
net45
net451
net452
net46
net461
net462
net47
net471
net472
net48
Microsoft Store (Windows Áruház) netcore netcore [netcore45]
netcore45 [win, win8]
netcore451 [win81]
netcore50
.NET MicroFramework netmf netmf
Windows nyer win [win8, netcore45]
win8 [netcore45, win]
win81 [netcore451]
win10 (a Windows 10 Platform nem támogatja)
Silverlight sl sl4
sl5
Windows Phone (SL) Wp wp [wp7]
wp7
wp75
wp8
wp81
Windows Phone (UWP) wpa81
Univerzális Windows-platform uap uap [uap10.0]
uap10.0
uap10.0.xxxxx (ahol a 10.0.xxxxx a célplatform a fogyasztó alkalmazás minimális verziója)
.NET Standard netstandard netstandard1.0
netstandard1.1
netstandard1.2
netstandard1.3
netstandard1.4
netstandard1.5
netstandard1.6
netstandard2.0
netstandard2.1
.NET 5+ (és .NET Core) netcoreapp netcoreapp1.0
netcoreapp1.1
netcoreapp2.0
netcoreapp2.1
netcoreapp2.2
netcoreapp3.0
netcoreapp3.1
Nettó net5.0
net6.0
net7.0
net8.0
net9.0
net10.0
Tizen tizen tizen3
tizen4
Native eredeti eredeti

Elavult keretrendszerek

A következő keretrendszerek elavultak. Az ezeket a keretrendszereket célzó csomagoknak a jelzett cserékre kell migrálniuk.

Elavult keretrendszer Replacement
aspnet50 netcoreapp
aspnetcore50
dnxcore50
dnx
dnx45
dnx451
dnx452
dotnet netstandard
dotnet50
dotnet51
dotnet52
dotnet53
dotnet54
dotnet55
dotnet56
winrt nyer

Precedence

Számos keretrendszer kapcsolódik egymáshoz, és kompatibilisek egymással, de nem feltétlenül egyenértékűek:

Keretrendszer Lehet használni
uap (univerzális Windows platform) Windows 8.1
wpa81
netcore50
win (Microsoft Store) winrt

NET szabvány

A .NET Standard leegyszerűsíti a binárisan kompatibilis keretrendszerek közötti hivatkozásokat, így egyetlen cél keretrendszer hivatkozhat mások kombinációjára. (A háttérben lásd a .NET-alapozót.)

A NuGet Get Nearest Framework Tool szimulálja, hogy a NuGet mit használ egy keretrendszer kiválasztásához a projekt keretrendszerén alapuló csomag számos elérhető keretrendszer-objektumából.

A dotnet monikerek sorozatát a NuGet 3.3-ban és korábbi verzióiban kell használni; a moniker szintaxist a netstandard 3.4-es és újabb verziókban kell használni.

Hordozható osztálykódtárak

Figyelmeztetés

A PCL-ek használata nem ajánlott. Bár a PCL-ek támogatottak, a csomagkészítőknek inkább a netstandardot kell támogatniuk. A .NET Platform Standard a PCL-k evolúciója, és a platformok közötti bináris hordozhatóságot jelöli egyetlen moniker használatával, amely nem kapcsolódik statikus kódtárhoz, például hordozható a+b+c monikerekhez.

Ha több gyermek-cél keretrendszerre hivatkozó célkeretet szeretne definiálni, a portable hivatkozott keretrendszerek listájának előtagjára használt kulcsszó. Kerülje az olyan kiegészítő keretrendszerek mesterséges beépítését, amelyek nem közvetlenül fordíthatók össze, mert ezek nem szándékos mellékhatásokhoz vezethetnek ezekben a keretrendszerekben.

A harmadik felek által meghatározott további keretrendszerek kompatibilitást biztosítanak az ilyen módon elérhető más környezetekkel. Emellett vannak olyan rövid profilszámok is, amelyek a kapcsolódó keretrendszerek Profile#ezen kombinációira hivatkoznak, de ez nem ajánlott eljárás ezeknek a számoknak a használatára, mivel csökkenti a mappák és .nuspeca mappák olvashatóságát.

Profil # Keretrendszerek Teljes név .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)

A Xamarint célzó NuGet-csomagok további Xamarin-keretrendszereket is használhatnak:

Név Leírás .NET Standard
monoandroid Android operációs rendszer mono támogatása netstandard1.4
monotouch Mono támogatás iOS-hez netstandard1.4
monomac Az OSX mono támogatása netstandard1.4
xamarinios Xamarin támogatása iOS-hez netstandard1.4
xamarinmac Támogatja a Mac Xamarint netstandard1.4
xamarinpsthree A Xamarin támogatása Playstation 3-on netstandard1.4
xamarinpsfour A Xamarin támogatása Playstation 4-en netstandard1.4
xamarinpsvita Xamarin támogatása a PS Vita-on netstandard1.4
xamarinwatchos Xamarin a Watch OS-hez netstandard1.4
xamarintvos Xamarin tv operációs rendszerhez netstandard1.4
xamarinxboxthreesixty Xamarin az XBox 360-hoz netstandard1.4
xamarinxboxone Xamarin az XBox One-hoz netstandard1.4

Megjegyzés:

Stephen Cleary létrehozott egy eszközt, amely felsorolja a támogatott PCL-eket, amelyeket a .NET keretrendszerprofiljai című bejegyzésében talál.