Edit in GitHub or Give Feedback

Target Frameworks

Page generated on 9/26/2016

As the .NET ecosystem has grown, so too has the list of frameworks and dependencies that NuGet supports. The frameworks that can be included and referenced by a NuGet package tracks closely with the list of available .NET framework versions and flavors that support all of the devices and systems the .NET framework can be used on.

References

Target frameworks can be referenced from three places:

nuspec manifest You can find a target framework referenced in the dependencies on the group elements to indicate which packages should be referenced when the package is installed into different projects.

nupkg folder name The folders inside of the base package lib folder are named after the target frameworks that the contents support. The DLLs and other content that support these framework version should be placed here.

project.json
This node specifies the framework versions that the project should be compiled against for project systems that use project.json (ASP.NET 5 and UWP currently).

A framework is typically referenced by a short name, called a "Target Framework Moniker" or TFM. With the advent of the new Platform Standard, the concept of 'TFM' has been abstracted to 'TxM' since the Platform Standard references multiple frameworks abstractly.

Source Reference

The source code from the NuGet clients that is used to calculate these tables can be found at:

Supported framework names in FrameworkConstants.cs

Framework Precedence and Mapping in DefaultFrameworkMappings.cs

Supported Frameworks

The official NuGet clients support the frameworks listed below, with the equivalence indicators provided:

NameAbbrTFMs/TxMs
.NET Framework

Standard .NET BCL on Windows Desktop and Server.
net net11
net20
net35
net40
net403
net45
net451
net452
net46
net461
net462
.NET Core

.NET Core Framework used in Windows Store Development
netcore netcore (equivalent to netcore45)
netcore45 (equivalent to win8)
netcore451 (equivalent to win81)
netcore50
.NET MicroFramework

Support for [.NET MicroFramework](http://netmf.github.io/) projects
netmf netmf
Windows

Frameworks to support Windows Store Development
win win (equivalent to win8)
win8 (equivalent to netcore45)
win81 (equivalent to netcore451)
win10 -- not supported by Windows 10 Platform
Silverlight

Support for the Silverlight frameworks
sl sl4
sl5
Windows Phone

Windows Phone application support
wp wp (equivalent to wp7)
wp7
wp75
wp8
wp81
wpa81
Universal Windows Platform Support

for Windows 10 Universal Application Platform
uap uap (equivalent to uap10)
uap10
.NET Standard

Modern PCL Support
netstandard netstandard1.0
netstandard1.1
netstandard1.2
netstandard1.3
netstandard1.4
netstandard1.5
netstandard1.6
.NET Core App

.NET Core Websites, Console Applications
netcoreapp netcoreapp1.0

Deprecated Frameworks

The following frameworks are deprecated. If you have any packages that target these frameworks, we highly recommend that you move towards their replacements.

Deprecated Frameworks
aspnet50, aspnetcore50, winrt, dotnet50 (equivalent to dotnet), dotnet51, dotnet52, dotnet53, dotnet54, dotnet55, dotnet56, dnx, dnx45, dnx451, dnx452, dnxcore50.
Note:
dotnet is replaced by netstandard
aspnet/dnx is replaced by netcoreapp.

Precedence

For a number of these frameworks, they are related to each other. Not necessarily equivalent, but there is compatibility that can allow binary content to run on other platforms. The compatibility matrix that NuGet uses is described below.

Universal Windows Platform (uap) can use the following content

Win81

WPA81

NetCore50

Windows Store (win) can use the following content

winrt

winrt45

NET Platform Standard

To simplify the references between binary-compatible frameworks, the .NET Platform Standard was introduced. This allows the definition of a single target framework moniker to reference a combination of binary compatible frameworks. Various versions of the Platform Standard indicate different combinations of frameworks that are compatible. More information about these frameworks can be found at the here.

The dotnet series of monikers should be used in NuGet 3.3 and the netstandard moniker syntax should be used in v3.4 and later.

Take a look at NuGet Tools - Get Nearest Framework to simulate what NuGet uses to select one framework from many available framework assets in a package based on the project's framework.

Portable Class Libraries

Not Recommended
While PCLs are supported, It is our recommendation that package authors move to supporting net standard instead.The .NET Platform Standard version represents binary portability across platforms using a single moniker. They are an evolution of the existing Portable Class Library system. They are "open-ended" in that they aren't tied down to a static list of monikers like portable-a+b+c is.

To define a target framework that refers to multiple child-target-frameworks, the portable keyword shall be used to prefix the list of frameworks that are referenced. We recommend that you do not artificially include extra frameworks that are not directly compiled against as this could lead to unintended side-effects in those frameworks.

There are additional frameworks that are defined by third parties that provide compatibility with other environments that are accessible in this manner. Additionally, there are shorthand profile numbers that are available to reference these combinations of related frameworks as Profile#, but this is not a recommended practice to use these numbers as it reduces the readability of the folders and nuspec.

Profile # Frameworks Full name .NET Standard
Profile2 .NETFramework 4.0
Windows 8.0
Silverlight 4.0
WindowsPhone 7.0
portable-net40+win8+sl4+wp7
Profile3 .NETFramework 4.0
Silverlight 4.0
portable-net40+sl4
Profile4 .NETFramework 4.5
Silverlight 4.0
Windows 8.0
WindowsPhone 7.0
portable-net45+sl4+win8+wp7
Profile5 .NETFramework 4.0
Windows 8.0
portable-net40+win8
Profile6 .NETFramework 4.0.3
Windows 8.0
portable-net403+win8
Profile7 .NETFramework 4.5
Windows 8.0
portable-net45+win8 netstandard1.1
Profile14 .NETFramework 4.0
Silverlight 5.0
portable-net40+sl5
Profile18 .NETFramework 4.0.3
Silverlight 4.0
portable-net403+sl4
Profile19 .NETFramework 4.0.3
Silverlight 5.0
portable-net403+sl5
Profile23 .NETFramework 4.5
Silverlight 4.0
portable-net45+sl4
Profile24 .NETFramework 4.5
Silverlight 5.0
portable-net45+sl5
Profile31 Windows 8.1
WindowsPhone 8.1
portable-win81+wp81 netstandard1.0
Profile32 Windows 8.1
WindowsPhone 8.1
portable-win81+wpa81 netstandard1.2
Profile36 .NETFramework 4.0
Silverlight 4.0
Windows 8.0
WindowsPhone 8.0
portable-net40+sl4+win8+wp8
Profile37 .NETFramework 4.0
Silverlight 5.0
Windows 8.0
portable-net40+sl5+win8
Profile41 .NETFramework 4.0.3
Silverlight 4.0
Windows 8.0
portable-net403+sl4+win8
Profile42 .NETFramework 4.0.3
Silverlight 5.0
Windows 8.0
portable-net403+sl5+win8
Profile44 .NETFramework 4.5.1
Windows 8.1
portable-net451+win81 netstandard1.2
Profile46 .NETFramework 4.5
Silverlight 4.0
Windows 8.0
portable-net45+sl4+win8
Profile47 .NETFramework 4.5
Silverlight 5.0
Windows 8.0
portable-net45+sl5+win8
Profile49 .NETFramework 4.5
WindowsPhone 8.0
portable-net45+wp8 netstandard1.0
Profile78 .NETFramework 4.5
Windows 8.0
WindowsPhone 8.0
portable-net45+win8+wp8 netstandard1.0
Profile84 WindowsPhone 8.1
WindowsPhone 8.1
portable-wp81+wpa81 netstandard1.0
Profile88 .NETFramework 4.0
Silverlight 4.0
Windows 8.0
WindowsPhone 7.5
portable-net40+sl4+win8+wp75
Profile92 .NETFramework 4.0
Windows 8.0
WindowsPhone 8.1
portable-net40+win8+wpa81
Profile95 .NETFramework 4.0.3
Silverlight 4.0
Windows 8.0
WindowsPhone 7.0
portable-net403+sl4+win8+wp7
Profile96 .NETFramework 4.0.3
Silverlight 4.0
Windows 8.0
WindowsPhone 7.5
portable-net403+sl4+win8+wp75
Profile102 .NETFramework 4.0.3
Windows 8.0
WindowsPhone 8.1
portable-net403+win8+wpa81
Profile104 .NETFramework 4.5
Silverlight 4.0
Windows 8.0
WindowsPhone 7.5
portable-net45+sl4+win8+wp75
Profile111 .NETFramework 4.5
Windows 8.0
WindowsPhone 8.1
portable-net45+win8+wpa81 netstandard1.1
Profile136 .NETFramework 4.0
Silverlight 5.0
Windows 8.0
WindowsPhone 8.0
portable-net40+sl5+win8+wp8
Profile143 .NETFramework 4.0.3
Silverlight 4.0
Windows 8.0
WindowsPhone 8.0
portable-net403+sl4+win8+wp8
Profile147 .NETFramework 4.0.3
Silverlight 5.0
Windows 8.0
WindowsPhone 8.0
portable-net403+sl5+win8+wp8
Profile151 .NETFramework 4.5.1
Windows 8.1
WindowsPhone 8.1
portable-net451+win81+wpa81 netstandard1.2
Profile154 .NETFramework 4.5
Silverlight 4.0
Windows 8.0
WindowsPhone 8.0
portable-net45+sl4+win8+wp8
Profile157 Windows 8.1
WindowsPhone 8.1
WindowsPhone 8.1
portable-win81+wp81+wpa81 netstandard1.0
Profile158 .NETFramework 4.5
Silverlight 5.0
Windows 8.0
WindowsPhone 8.0
portable-net45+sl5+win8+wp8
Profile225 .NETFramework 4.0
Silverlight 5.0
Windows 8.0
WindowsPhone 8.1
portable-net40+sl5+win8+wpa81
Profile240 .NETFramework 4.0.3
Silverlight 5.0
Windows 8.0
WindowsPhone 8.1
portable-net403+sl5+win8+wpa81
Profile255 .NETFramework 4.5
Silverlight 5.0
Windows 8.0
WindowsPhone 8.1
portable-net45+sl5+win8+wpa81
Profile259 .NETFramework 4.5
Windows 8.0
WindowsPhone 8.1
WindowsPhone 8.0
portable-net45+win8+wpa81+wp8 netstandard1.0
Profile328 .NETFramework 4.0
Silverlight 5.0
Windows 8.0
WindowsPhone 8.1
WindowsPhone 8.0
portable-net40+sl5+win8+wpa81+wp8
Profile336 .NETFramework 4.0.3
Silverlight 5.0
Windows 8.0
WindowsPhone 8.1
WindowsPhone 8.0
portable-net403+sl5+win8+wpa81+wp8
Profile344 .NETFramework 4.5
Silverlight 5.0
Windows 8.0
WindowsPhone 8.1
WindowsPhone 8.0
portable-net45+sl5+win8+wpa81+wp8

Additionally, there are optional frameworks provided by Xamarin that are supported by the official NuGet clients. More details about these frameworks are available from Xamarin.

Name Description .NET Standard
monoandroid Mono Support for Android OS netstandard1.4
monotouch Mono Support for iOS netstandard1.4
monomac Mono Support for OSX netstandard1.4
xamarinios Support for Xamarin for iOS netstandard1.4
xamarinmac Supports for Xamarin for Mac netstandard1.4
xamarinpsthree Support for Xamarin on Playstation 3 netstandard1.4
xamarinpsfour Support for Xamarin on Playstation 4 netstandard1.4
xamarinpsvita Support for Xamarin on PS Vita netstandard1.4
xamarinwatchos Xamarin for Watch OS netstandard1.4
xamarintvos Xamarin for TV OS netstandard1.4
xamarinxboxthreesixty Xamarin for XBox 360 netstandard1.4
xamarinxboxone Xamarin for XBox One netstandard1.4

Stephen Cleary has a blog post that demonstrates a tool that will mine the list of supported portable class libraries on a workstation and report the features of them: http://blog.stephencleary.com/2012/05/framework-profiles-in-net.html