Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bir uygulama veya kitaplıktaki bir çerçeveyi hedeflediğinizde, uygulama veya kitaplık için kullanılabilir hale getirmek istediğiniz API kümesini belirtirsiniz. Proje dosyanızda hedef çerçeveyi bir hedef çerçeve adı (TFM) kullanarak belirtirsiniz.
Uygulama veya kitaplık .NET Standard sürümünü hedefleyebilir. .NET Standart sürümler, tüm .NET uygulamalarında standartlaştırılmış API kümelerini temsil eder. Örneğin, bir kitaplık Standart 1.6 .NET hedefleyebilir ve aynı kod tabanını kullanarak .NET Core ve .NET Framework genelinde çalışan API'lere erişim elde edebilir.
Uygulama veya kitaplık, uygulamaya özgü API'lere erişim elde etmek için belirli bir .NET uygulamasını da hedefleyebilir. Örneğin, Evrensel Windows Platformu (UWP, uap10.0) hedefleyen bir uygulamanın Windows 10 çalıştıran cihazlar için derlenen API'lere erişimi vardır.
.NET Framework gibi bazı hedef çerçeveler için API'ler, çerçevenin bir sisteme yüklediği derlemeler tarafından tanımlanır ve uygulama çerçevesi API'leri (örneğin, ASP.NET) içerebilir.
Paket tabanlı hedef çerçeveler için (örneğin, .NET 5+, .NET Core ve .NET Standard), API'ler uygulama veya kitaplığa dahil edilen NuGet paketleri tarafından tanımlanır.
En son sürümler
Aşağıdaki tabloda en yaygın hedef çerçeveler, bunlara nasıl başvurulduğu ve hangi .NET Standard sürümünün uygulandığı tanımlanmaktadır. Bu hedef çerçeve sürümleri en son kararlı sürümlerdir. Yayın öncesi sürümler gösterilmez. target çerçeve takma adı (TFM), bir .NET uygulamasının veya kitaplığının hedef çerçevesini belirtmek için standartlaştırılmış bir belirteç biçimidir.
| Hedef çerçeve | Sonuncu kararlı sürüm |
Hedef çerçeve adı (TFM) | Uygulanan .NET Standard sürüm |
|---|---|---|---|
| .NET 10 | 10 | net10.0 | 2.1 |
| .NET 9 | 9 | net9.0 | 2.1 |
| .NET 8 | 8 | net8.0 | 2.1 |
| .NET Standard | 2.1 | netstandard2.1 | Yok |
| .NET Core | 3.1 | netcoreapp3.1 | 2.1 |
| .NET Framework | 4.8.1 | net481 | 2.0 |
Desteklenen hedef çerçeveler
Hedef çerçeveye genellikle bir TFM tarafından başvurulur. Aşağıdaki tabloda, .NET SDK ve NuGet istemcisi tarafından desteklenen hedef çerçeveler gösterilmektedir. Eşdeğerler köşeli ayraç içinde gösterilir. Örneğin, win81 ile eşdeğer bir TFM'dir netcore451.
| Hedef Çerçeve | TFM |
|---|---|
| .NET 5+ (ve .NET Core) | netcoreapp1.0 netcoreapp1.1 netcoreapp2.0 netcoreapp2.1 netcoreapp2.2 netcoreapp3.0 netcoreapp3.1 net5.0* net6.0* net7.0* net8.0* net9.0* net10.0* |
| .NET Standard | netstandard1.0 netstandard1.1 netstandard1.2 netstandard1.3 netstandard1.4 netstandard1.5 netstandard1.6 netstandard2.0 netstandard2.1 |
| .NET Framework | net11 net20 net35 net40 net403 net45 net451 net452 net46 net461 net462 net47 net471 net472 net48 net481 |
| Windows Mağazası | netcore [netcore45] netcore45 [win] [win8] netcore451 [win81] |
| .NET nanoFramework | netnano1.0 |
| .NET Micro Framework | netmf |
| Silverlight | sl4 sl5 |
| Windows Telefon | wp [wp7] wp7 wp75 wp8 wp81 wpa81 |
| Evrensel Windows Platformu | uap [uap10.0] uap10.0 [win10] [netcore50] |
* .NET 5 ve üzeri TFM'ler işletim sistemine özgü bazı çeşitlemeler içerir. Daha fazla bilgi için aşağıdaki işletim sistemine özgü TFM'ler bölümüne bakın.
İşletim sistemine özgü TFM'ler
net8.0, net9.0ve net10.0 TFM'leri farklı platformlarda çalışan teknolojiler içerir.
OS'a özgü TFM belirterek, bir işletim sistemine özgü API'ler, örneğin Windows Forms veya iOS bağlamaları gibi uygulamanızın kullanımına sunulur. İşletim sistemine özgü TFM'ler, temel TFM'ler için kullanılabilen her API'yi de devralır; örneğin, net10.0 TFM.
Aşağıdaki tabloda .NET 8+ TFM'lerin uyumluluğu gösterilmektedir.
| TFM | Ile uyumlu |
|---|---|
net8.0 |
(Sonraki sürümü net7.0) |
net8.0-android |
(Sonraki sürümü net7.0-android) |
net8.0-browser |
Devralınan her şey net8.0 |
net8.0-ios |
(Sonraki sürümü net7.0-ios) |
net8.0-maccatalyst |
(Sonraki sürümü net7.0-maccatalyst) |
net8.0-macos |
(Sonraki sürümü net7.0-macos) |
net8.0-tizen |
(Sonraki sürümü net7.0-tizen) |
net8.0-tvos |
(Sonraki sürümü net7.0-tvos) |
net8.0-windows |
(Sonraki sürümü net7.0-windows) |
net9.0 |
(Sonraki sürümü net8.0) |
net9.0-android |
(Sonraki sürümü net8.0-android) |
net9.0-browser |
(Sonraki sürümü net8.0-browser) |
net9.0-ios |
(Sonraki sürümü net8.0-ios) |
net9.0-maccatalyst |
(Sonraki sürümü net8.0-maccatalyst) |
net9.0-macos |
(Sonraki sürümü net8.0-macos) |
net9.0-tizen |
(Sonraki sürümü net8.0-tizen) |
net9.0-tvos |
(Sonraki sürümü net8.0-tvos) |
net9.0-windows |
(Sonraki sürümü net8.0-windows) |
net10.0 |
(Sonraki sürümü net9.0) |
net10.0-android |
(Sonraki sürümü net9.0-android) |
net10.0-browser |
(Sonraki sürümü net9.0-browser) |
net10.0-ios |
(Sonraki sürümü net9.0-ios) |
net10.0-maccatalyst |
(Sonraki sürümü net9.0-maccatalyst) |
net10.0-macos |
(Sonraki sürümü net9.0-macos) |
net10.0-tizen |
(Sonraki sürümü net9.0-tizen) |
net10.0-tvos |
(Sonraki sürümü net9.0-tvos) |
net10.0-windows |
(Sonraki sürümü net9.0-windows) |
Uygulamanızı farklı platformlarda taşınabilir hale getirmek ancak işletim sistemine özgü API'lere erişmeye devam etmek için, önişlemci yönergelerini kullanarak #if işletim sistemine özgü birden çok TFM'yi hedefleyebilir ve işletim sistemine özgü API çağrılarının çevresine platform korumaları ekleyebilirsiniz. Kullanılabilir simgelerin listesi için bkz . Önişlemci simgeleri.
Önerilen hedefler
Uygulamanızda hangi TFM'nin kullanılacağını belirlemek için şu yönergeleri kullanın:
- Birden çok platforma taşınan uygulamalar temel TFM'yi (örneğin,
net10.0) hedeflemelidir. Bu çoğu kitaplığı içerir, ancak ASP.NET Core ve Entity Framework'i de içerir. - Platforma özgü kitaplıklar platforma özgü tatları hedeflemelidir. Örneğin, WinForms ve WPF projeleri
net10.0-windowshedeflenmelidir. - Platformlar arası uygulama modelleri (örneğin, ASP.NET Core) en azından temel TFM'yi (örneğin,
net10.0) hedeflemelidir, ancak daha fazla API veya özelliği etkinleştirmek için platforma özgü ek varyasyonlar da hedeflenebilir.
TFM'lerde işletim sistemi sürümü
İşletim sistemine özgü TFM'nin sonunda isteğe bağlı bir işletim sistemi sürümü de belirtebilirsiniz; örneğin, net8.0-ios17.2. Sürüm, uygulamanız veya kitaplığınız için hangi API'lerin kullanılabilir olduğunu gösterir. Uygulamanızın veya kitaplığınızın çalışma zamanında desteklediği işletim sistemi sürümünü denetlemez. Projenizin derlediği başvuru derlemelerini seçmek ve NuGet paketlerinden varlıkları seçmek için kullanılır. Bu sürümü, çalışma zamanı işletim sistemi sürümünden ayırt etmek için "platform sürümü" veya "OS API sürümü" olarak düşünün.
.NET SDK'sı, temel TFM'nin yeni bir sürümü olmadan tek bir platform için yeni yayımlanan API'leri destekleyecek şekilde tasarlanmıştır. Bu, .NET önemli bir sürümünü beklemeden platforma özgü işlevlere erişmenizi sağlar. TFM'deki platform sürümünü artırarak yeni yayımlanan bu API'lere erişim elde edebilirsiniz. Örneğin, Android platformu .NET 8.0.x SDK güncelleştirmesinde API düzeyi 34 API'leri eklediyse, TFM net8.0-android34.0 kullanarak bunlara erişebilirsiniz.
İşletim sistemine özgü bir TFM, platform sürümünü açıkça belirtmediğinde, temel TFM ve platform adından çıkarılabilen zımni bir değere sahiptir. Örneğin, .NET 9'da Android için varsayılan platform sürümü 35.0'dır; yani net9.0-android kurallı net9.0-android35.0 TFM için kısaltmadır. Kısaltma biçimi yalnızca proje dosyalarında kullanılmak üzere tasarlanmıştır ve NuGet gibi diğer araçlara geçirilmeden önce .NET SDK'sının MSBuild hedefleri tarafından kurallı biçime genişletilir.
Aşağıdaki tabloda, her .NET sürümü için Android ve iOS için default hedef platform sürümü (TPV) gösterilmektedir. En son bağlamaları kullanmak istiyorsanız varsayılanı kullanın (işletim sistemi sürümü belirtmeyin).
| .NET sürümü | Android | Ios |
|---|---|---|
| .NET 8 | 34.0 | 17.2 |
| .NET 9 | 35.0 | 18,0 |
| .NET 10 | 36.0 | 18.7 |
.NET 9'dan başlayarak, hizmet sürümleri sonraki bir TPV için destek sunduğunda (her zaman .NET sürümün ilk yayımlanmasıyla aynı major sürüm numarasına sahip olur), bu .NET sürümü için desteklenen en eski TPV desteklenmeye devam eder. Örneğin, .NET 9 için, bir hizmet sürümü en son iOS 18.x sürümü için destek eklediğinde bile desteklenen en eski iOS sürümü olan 18.0 desteklenmeye devam eder. Eğer .NET sürümü için en eski bağlamaları kullanmanız gerekiyorsa, TFM'nizde belirli bir işletim sistemi sürüm numarasını kullanın.
Uyarı
.NET 8 ve önceki sürümlerdeki Apple platformlarında (iOS, macOS, tvOS ve Mac Catalyst) varsayılan TPV, şu anda yüklü olan iş yükünde desteklenen en son sürümdür. Bu, örneğin .NET 8'de iOS iş yükünü güncelleştirmenin, bu iş yüküne yeni bir iOS sürümü desteği eklendiğinde daha yüksek bir varsayılan TPV'ye neden olabileceği anlamına gelir. Yukarıdaki tabloda varsayılan TPV, belirtilen .NET sürümü için ilk sürümdeki sürümdür.
.NET 9'dan başlayarak, bu özel davranış yalnızca executable projeleri için geçerlidir. Kitaplık projeleri için varsayılan TPV artık tüm diğer platformlar gibi önemli bir .NET sürümünün tamamı için aynı kalıyor.
Öncelik
Uygulamanız farklı TFM'ler için birden çok varlığı olan bir pakete başvuruyorsa, sürüm numarasına daha yakın olan varlıklar tercih edilir. Örneğin, uygulamanız net9.0-ios hedefliyorsa ve paket net9.0 ile net8.0-ios için varlıklar sunuyorsa, net9.0 varlıklar kullanılır. Daha fazla bilgi için Öncelikler'e bakın.
Eski işletim sistemi sürümlerini destekleme
Platforma özgü bir uygulama veya kitaplık, bu işletim sisteminin belirli bir sürümündeki API'lere karşı derlenmiş olsa da, özelliğini proje dosyanıza ekleyerek SupportedOSPlatformVersion önceki işletim sistemi sürümleriyle uyumlu hale getirebilirsiniz. özelliği, SupportedOSPlatformVersion uygulamanızı veya kitaplığınızı çalıştırmak için gereken en düşük işletim sistemi sürümünü gösterir. Projede bu en düşük çalışma zamanı işletim sistemi sürümünü açıkça belirtmezseniz, varsayılan olarak TFM'den platform sürümüne ayarlanır.
Uygulamanızın eski bir işletim sistemi sürümünde düzgün çalışması için, işletim sisteminin bu sürümünde mevcut olmayan API'leri çağıramaz. Ancak, daha yeni API'lere yapılan çağrıların çevresine korumalar ekleyebilirsiniz, böylece bunlar yalnızca onları destekleyen bir işletim sistemi sürümünde çalıştırılırken çağrılır. Bu düzen, uygulamanızı veya kitaplığınızı eski işletim sistemi sürümlerinde çalıştırmayı destekleyecek şekilde tasarlamanıza ve yeni işletim sistemi sürümlerinde çalışırken daha yeni işletim sistemi işlevselliğinden yararlanmanıza olanak tanır.
Değeri SupportedOSPlatformVersion (açık veya varsayılan) platform uyumluluk çözümleyicisi tarafından kullanılır. Bu çözümleyici, daha yeni API'lere yönelik korumasız çağrıları algılar ve uyarır. Platform uyumluluk çözümleyicisinin daha düşük UnsupportedOSPlatformAttribute bir değere sahip projelerden bu derlemenin API'lerine yönelik korumasız çağrıları algılaması için projenin derlenmiş derlemesine bir SupportedOSPlatformVersion derleme özniteliği olarak eklenir. Bazı platformlarda bu değer, SupportedOSPlatformVersion platforma özgü uygulama paketleme ve derleme işlemlerini etkiler ve bu işlemler bu platformların belgelerinde ele alınmıştır.
Aşağıdaki örnek, uygulama veya kitaplığın iOS 15.0 API'lerine erişimi olduğunu ancak iOS 13.0 ve üzeri sürümlerde çalıştırılmasını desteklediğini belirtmek için ve TargetFramework MSBuild özelliklerini kullanan SupportedOSPlatformVersion bir proje dosyasının alıntısıdır:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net6.0-ios15.0</TargetFramework>
<SupportedOSPlatformVersion>13.0</SupportedOSPlatformVersion>
</PropertyGroup>
...
</Project>
Hedef çerçeve belirtme
Hedef çerçeveler bir proje dosyasında belirtilir. Tek bir hedef çerçeve belirtildiğinde TargetFramework öğesini kullanın. Aşağıdaki konsol uygulaması proje dosyasının .NET 10'u nasıl hedeflendiğini gösteriyor.
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net10.0</TargetFramework>
</PropertyGroup>
</Project>
Birden çok hedef çerçeve belirttiğinizde, her hedef çerçeve için derlemelere koşullu olarak başvurabilirsiniz. Kodunuzda, if-then-else mantığıyla ön işlemci sembollerini kullanarak bu derlemelere karşı koşullu olarak derleme yapabilirsiniz.
Aşağıdaki kitaplık projesi, .NET Standard (netstandard1.4) ve .NET Framework (net40 ve net45) API'lerini hedefler. Birden çok hedef çerçeve ile çoğul TargetFrameworks öğesini kullanın. kitaplık iki .NET Framework TFM için derlendiğinde Condition öznitelikleri uygulamaya özgü paketleri içerir:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFrameworks>netstandard1.4;net40;net45</TargetFrameworks>
</PropertyGroup>
<!-- Conditionally obtain references for the .NET Framework 4.0 target -->
<ItemGroup Condition=" '$(TargetFramework)' == 'net40' ">
<Reference Include="System.Net" />
</ItemGroup>
<!-- Conditionally obtain references for the .NET Framework 4.5 target -->
<ItemGroup Condition=" '$(TargetFramework)' == 'net45' ">
<Reference Include="System.Net.Http" />
<Reference Include="System.Threading.Tasks" />
</ItemGroup>
</Project>
Kitaplığınızda veya uygulamanızda, her hedef çerçeve için derlemek üzere önişlemci yönergelerini kullanarak koşullu kod yazarsınız:
public class MyClass
{
static void Main()
{
#if NET40
Console.WriteLine("Target framework: .NET Framework 4.0");
#elif NET45
Console.WriteLine("Target framework: .NET Framework 4.5");
#else
Console.WriteLine("Target framework: .NET Standard 1.4");
#endif
}
}
TargetFramework değerleri diğer adlardır
TargetFramework özellik değeri (örneğin, net10.0), kolay bir ad—veya diğer bir ad—olarak .NET SDK tarafından kurallı benzersiz ad özelliklerine çevrilir. Özellikle, SDK TargetFramework değerinden aşağıdaki özellikleri ayarlar:
-
TargetFrameworkMoniker(örneğin,.NETCoreApp,Version=v10.0) -
TargetFrameworkIdentifier(örneğin,.NETCoreApp) -
TargetFrameworkVersion(örneğin,v10.0) -
TargetPlatformMoniker,TargetPlatformIdentifierveTargetPlatformVersion(belirli bir platformu hedeflerken)
NuGet ve .NET SDK'sı, paket uyumluluk denetimleri ve derleme mantığı için TargetFramework dizesini değil bu takma adı özelliklerini kullanır. Bu çeviri, işletim sistemine özgü TFM'ler için zaten gerçekleşir. Örneğin, net10.0-windowsTargetFrameworkMoniker = .NETCoreApp,Version=v10.0 ve TargetPlatformMoniker = Windows,Version=7.0 olarak çevrilir.
Diğer ad yalnızca bir ad olduğundan, karşılık gelen moniker özellikleri doğru ayarlandığı sürece, TargetFramework değeri herhangi bir alfasayısal dize olabilir. Aşağıdaki proje dosyası banana adlı özel bir diğer ad kullanır ve projenin .NET 10.0 için derlenip geri yüklenebilmesi için ad özelliklerini açıkça ayarlar:
<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>
Bu özellikler hakkında daha fazla bilgi için bkz. TargetFramework MSBuild özellik başvurusu.
Önişlemci simgeleri
Derleme sistemi, SDK stilinde projeler kullanırken Desteklenen hedef çerçeve sürümleri tablosunda gösterilen hedef çerçeveleri temsil eden ön işlemci sembollerinin farkındadır. .NET Standard, .NET Core veya .NET 5+ TFM'yi ön işlemci simgesine dönüştürmek için noktaları ve kısa çizgileri alt çizgiyle değiştirin ve küçük harfleri büyük harfle değiştirin (örneğin, netstandard2.0 simgesi NETSTANDARD2_0).
Özelliği aracılığıyla bu simgelerin oluşturulmasını DisableImplicitFrameworkDefines devre dışı bırakabilirsiniz. Bu özellik hakkında daha fazla bilgi için bkz . DisableImplicitFrameworkDefines.
.NET hedef çerçeveleri için ön işlemci simgelerinin tam listesi:
| Hedef Çerçeveler | Semboller | Ek simgeler (.NET 5+SDK'larda kullanılabilir) |
Platform simgeleri (yalnızca belirli koşullarda kullanılabilir) işletim sistemine özgü bir TFM belirttiğinizde) |
|---|---|---|---|
| .NET Framework |
NETFRAMEWORK, NET481, NET48, NET472, NET471, NET47, NET462, NET461, NET46, NET452, NET451, NET45, NET40, NET35, NET20 |
NET48_OR_GREATER, NET472_OR_GREATER, NET471_OR_GREATER, NET47_OR_GREATER, NET462_OR_GREATER, NET461_OR_GREATER, NET46_OR_GREATER, NET452_OR_GREATER, NET451_OR_GREATER, NET45_OR_GREATER, NET40_OR_GREATER, NET35_OR_GREATER, NET20_OR_GREATER |
|
| .NET Standard |
NETSTANDARD, NETSTANDARD2_1, NETSTANDARD2_0, NETSTANDARD1_6, NETSTANDARD1_5, NETSTANDARD1_4, NETSTANDARD1_3, NETSTANDARD1_2, NETSTANDARD1_1, NETSTANDARD1_0 |
NETSTANDARD2_1_OR_GREATER, NETSTANDARD2_0_OR_GREATER, NETSTANDARD1_6_OR_GREATER, , NETSTANDARD1_5_OR_GREATER, NETSTANDARD1_4_OR_GREATER, NETSTANDARD1_3_OR_GREATER, NETSTANDARD1_2_OR_GREATER, NETSTANDARD1_1_OR_GREATER, NETSTANDARD1_0_OR_GREATER |
|
| .NET 5+ (ve .NET Core) |
NET, NET10_0, NET9_0, NET8_0, NET7_0, NET6_0, NET5_0, NETCOREAPP, NETCOREAPP3_1, NETCOREAPP3_0, NETCOREAPP2_2, NETCOREAPP2_1, NETCOREAPP2_0, NETCOREAPP1_1, NETCOREAPP1_0 |
NET10_0_OR_GREATER, NET9_0_OR_GREATER, NET8_0_OR_GREATER, NET7_0_OR_GREATER, NET6_0_OR_GREATER, NET5_0_OR_GREATER, NETCOREAPP3_1_OR_GREATER, NETCOREAPP3_0_OR_GREATER, NETCOREAPP2_2_OR_GREATER, NETCOREAPP2_1_OR_GREATER, NETCOREAPP2_0_OR_GREATER, NETCOREAPP1_1_OR_GREATER, NETCOREAPP1_0_OR_GREATER |
ANDROID, BROWSER, IOS, , MACCATALYST, MACOS, TVOS, WINDOWS,[OS][version] (örneğin IOS15_1),[OS][version]_OR_GREATER (örneğin IOS15_1_OR_GREATER) |
Uyarı
- Sürümsüz simgeler, hedeflediğiniz sürümden bağımsız olarak tanımlanır.
- Sürüme özgü simgeler yalnızca hedeflediğiniz sürüm için tanımlanır.
- Simgeler
<framework>_OR_GREATER, hedeflediğiniz sürüm ve önceki tüm sürümler için tanımlanır. Örneğin, .NET Framework 2.0'ı hedeflediyseniz şu simgeler tanımlanır:NET20,NET20_OR_GREATER,NET11_OR_GREATERveNET10_OR_GREATER. -
NETSTANDARD<x>_<y>_OR_GREATERsimgeleri yalnızca .NET Standart hedefler için tanımlanır; .NET Core ve .NET Framework gibi .NET Standard uygulayan hedefler için tanımlanmaz. - Bunlar MSBuild
TargetFrameworközelliği ve NuGet tarafından kullanılan hedef çerçeve adlarından (TFM' ler) farklıdır.
Kullanım dışı bırakılan hedef çerçeveler
Aşağıdaki hedef çerçeveler kullanım dışıdır. Bu hedef çerçeveleri hedefleyen paketler belirtilen değişimlere geçirilmelidir.
| Kullanımdan kaldırılmış TFM | Değiştirme |
|---|---|
| aspnet50 aspnetcore50 dnxcore50 Dnx dnx45 dnx451 dnx452 |
netcoreapp |
| dotnet dotnet50 dotnet51 dotnet52 dotnet53 dotnet54 dotnet55 dotnet56 |
netstandard |
| netcore50 | uap10.0 |
| kazanmak | netcore45 |
| Windows 8 | netcore45 |
| Windows 8.1 | netcore451 |
| Windows 10 | uap10.0 |
| winrt | netcore45 |