Supported frameworks

A framework is typically referenced by a short target framework moniker or TFM. In .NET Standard this is also is generalized to TxM to allow a single reference to multiple frameworks.

The NuGet clients support the frameworks in the table below. Equivalents are shown within brackets []. Note that some tools, such as dotnet, might use variations of canonical TFMs in some files. For example, dotnet pack uses .NETCoreApp2.0 in a .nuspec file rather than netcoreapp2.0. The various NuGet client tools handle these variations properly, but you should always use canonical TFMs when editing files directly.

Name

Abbreviation

TFMs/TxMs

.NET Framework

net

net11

net20

net35

net40

net403

net45

net451

net452

net46

net461

net462

Microsoft Store (Windows Store)

netcore

netcore [netcore45]

netcore45 [win, win8]

netcore451 [win81]

netcore50

.NET MicroFramework

netmf

netmf

Windows

win

win [win8, netcore45]

win8 [netcore45, win]

win81 [netcore451]

win10 (not supported by Windows 10 Platform)

Silverlight

sl

sl4

sl5

Windows Phone (SL)

wp

wp [wp7]

wp7

wp75

wp8

wp81

Windows Phone (UWP)

wpa81

Universal Windows Platform

uap

uap [uap10.0]

uap10.0

.NET Standard

netstandard

netstandard1.0

netstandard1.1

netstandard1.2

netstandard1.3

netstandard1.4

netstandard1.5

netstandard1.6

netstandard2.0

.NET Core App

netcoreapp

netcoreapp1.0

netcoreapp1.1

netcoreapp2.0

Tizen

tizen

tizen3

tizen4

Deprecated frameworks

The following frameworks are deprecated. Packages targeting these frameworks should migrate to the indicated replacements.

Deprecated framework

Replacement

aspnet50

netcoreapp

aspnetcore50

dnxcore50

dnx

dnx45

dnx451

dnx452

dotnet

netstandard

dotnet50

dotnet51

dotnet52

dotnet53

dotnet54

dotnet55

dotnet56

winrt

win

Precedence

A number of frameworks are related to and compatible with one another, but not necessarily equivalent:

Framework

Can use

uap (Universal Windows Platform)

win81

wpa81

netcore50

win (Microsoft Store)

winrt

NET Platform Standard

The .NET Platform Standard simplifies references between binary-compatible frameworks, allowing a single target framework to reference a combination of others. (For background, see the .NET Primer.)

The NuGet Get Nearest Framework Tool simulates what NuGet uses to select one framework from many available framework assets in a package based on the project's framework.

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

Portable Class Libraries

Warning

PCLs are not recommended. Although PCLs are supported, package authors should support netstandard instead. The .NET Platform Standard is an evolution of PCLs and represents binary portability across platforms using a single moniker that isn't tied to a static library like portable-a+b+c monikers.

To define a target framework that refers to multiple child-target-frameworks, the portable keyword use used to prefix the list of referenced frameworks. Avoid artificially including extra frameworks that are not directly compiled against because it can lead to unintended side-effects in those frameworks.

Additional frameworks defined by third parties 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.

The feedback system for this content will be changing soon. Old comments will not be carried over. If content within a comment thread is important to you, please save a copy. For more information on the upcoming change, we invite you to read our blog post.