.NET Framework Versions and Dependencies

 

Each version of the .NET Framework contains the common language runtime (CLR), the base class libraries, and other managed libraries. This topic describes the key features of the .NET Framework by version, provides information about the underlying CLR versions and associated development environments, and identifies the versions that are installed by the Windows operating system.

System_CAPS_noteNote

For information on downloading and installing the .NET Framework, see Installing the .NET Framework.

The following table summarizes .NET Framework version history and correlates each version with Visual Studio, Windows, and Windows Server. Note that Visual Studio provides multi-targeting, so you are not limited to the version of the .NET Framework that is listed.

Each new version of the .NET Framework retains features from the previous versions and adds new features. The CLR is identified by its own version number. The .NET Framework version number is incremented at each release, although the CLR version is not always incremented. For example, the .NET Framework 4, 4.5, and later releases include CLR 4, but the .NET Framework 2.0, 3.0, and 3.5 include CLR 2.0. (There was no version 3 of the CLR.)

See .NET Framework System Requirements for a complete list of supported operating systems. For downloads, see the installation guide. For determining which version(s) of the .NET Framework is installed on a computer, see How to: Determine Which .NET Framework Versions Are Installed.

In the table, versions of the .NET Framework that are installed on operating system versions marked with * in the Included in/Can be installed on Windows and the Included in/Can be installed on Windows Server columns must be enabled in Control Panel (for Windows) or enabled through the Server Manager (for Windows Server).

.NET Framework version

CLR version

Features

Included in Visual Studio version

✓ Included in
+ Can be installed on
Windows

✓ Included in
+ Can be installed on
Windows Server

To determine installed .NET version

.NET 4.6.2

4

  • Cryptography enhancements, including support for X509 certificates containing FIS 186-3 DSA, support for persisted-key symmetric encryption, SignedXml support for SHA-2 hashing, and increased clarity for inputs to ECDiffieHellman key derivation routines.

  • For Windows Presentation Foundation (WPF) apps, soft keyboard support and per-monitor DPI.

  • ClickOnce support for the TLS 1.1 and TLS 1.2 protocols.

  • Support for converting Windows Forms and WPF apps to UWP apps.

✓ 10 Anniversary Update

+ 8.1
+ 7

✓ 2016

+ 2012 R2
+ 2012
+ 2008 R2 SP1

Use Release DWORD:

  • 394802 (Windows 10 Anniversary Update)

  • 394806 (all other OS versions)


(see instructions)

Net 4.6.1

4

  • Support for X509 certificates containing ECDSA

  • Always Encrypted support for hardware protected keys in ADO.NET

  • Spell checking improvements in WPF

  • More...

✓ 10 November Update

+ 10
+ 8.1
+ 8
+ 7

+ 2012 R2
+ 2012
+ 2008 R2 SP1

Use Release DWORD:

  • 394254 (Windows 10 November Update)

  • 394271 (all other OS versions)


(see instructions)

.NET 4.6

4

  • Compilation using .NET Native

  • ASP.NET Core 5

  • Event tracing improvements

  • Support for page encodings

  • More...

2015, although some .NET libraries are available on NuGet. For more information see, The .NET Framework and Out-of-Band Releases.

✓ 10
+ 8.1
+ 8
+ 7
+ Vista

+ 2012 R2
+ 2012
+ 2008 R2 SP1
+ 2008 SP2

Use Release DWORD:

  • 393295 (Windows 10)

  • 393297 (all other OS versions)


(see instructions)

4.5.2

4

  • New APIs for transactional systems and ASP.NET

  • System DPI resizing in Windows Forms controls

  • Profiling improvements

  • ETW and stress logging improvements

  • More...

-

+ 8.1
+ 8
+ 7
+ Vista

+ 2012 R2
+ 2012
+ 2008 R2 SP1
+ 2008 SP2

Use Release DWORD: 379893
(see instructions)

4.5.1

4

  • Support for Windows Phone Store apps

  • Automatic binding redirection

  • Performance and debugging improvements

  • More...

2013

✓ 8.1
+ 8
+ 7
+ Vista

✓ 2012 R2
+ 2012
+ 2008 R2 SP1
+ 2008 SP2

Use Release DWORD:

  • 378675 (Windows 8.1)

  • 378758 (all other)

(see instructions)

4.5

4

  • Support for Windows Store apps

  • WPF, WCF, WF, ASP.NET updates

  • More...

2012

✓ 8
+ 7
+ Vista

✓ 2012
+ 2008 R2 SP1
+ 2008 SP2

Use Release DWORD: 378389
(see instructions)

4

4

  • Expanded base class libraries

  • Cross-platform development with Portable Class Library

  • MEF, DLR, code contracts

  • More...

2010

+ 7
+ Vista

+ 2008 R2 SP1
+ 2008 SP2
+ 2003

See instructions

3.5

2.0

  • AJAX-enabled websites

  • LINQ

  • Dynamic data

  • More...

2008

✓ 10✓ 8.1*
✓ 8*
✓ 7
+ Vista

✓2008 R2 SP1*
+ 2012 R2
+ 2012
+ 2008 SP2
+ 2003

See instructions

3.0

2.0

  • WPF, WCF, WF, CardSpace

-

✓ Vista

✓ 2008 R2 SP1*
✓ 2008 SP2*
+ 2003

See instructions

2.0

2.0

2005

-

✓ 2008 R2 SP1
✓ 2008 SP2
✓ 2003

See instructions

1.1

1.1

  • ASP.NET and ADO.NET updates

  • Side-by-side execution

  • More...

2003

-

✓ 2003

See instructions

1.0

1.0

First version of the .NET Framework.

Visual Studio .NET

-

-

See instructions

   

In general, you should not uninstall any versions of the .NET Framework that are installed on your computer, because an application you use may depend on a specific version and may break if that version is removed. You can load multiple versions of the .NET Framework on a single computer at the same time. This means that you can install the .NET Framework without having uninstall previous versions. For more information, see Getting Started with the .NET Framework.

The .NET Framework 4.5 is an in-place update that replaces the .NET Framework 4 on your computer, and similarly, the .NET Framework 4.5.1 4.5.2, 4.6, 4.6.1, and 4.6.2 are in-place updates to the .NET Framework 4.5, which means that they use the same runtime version, but the assembly versions are updated and include new types and members. After you install one of these updates, your .NET Framework 4, .NET Framework 4.5, or .NET Framework 4.6 apps should continue to run without requiring recompilation. However, the reverse is not true. We do not recommend running apps that target a later version of the .NET Framework on the an earlier version of the .NET Framework. For example, we do not recommend that you run an app the targets the .NET Framework 4.6 on the .NET Framework 4.5. The following guidelines apply:

  • In Visual Studio 2013, you can choose the .NET Framework 4.5 as the target framework for a project (this sets the GetReferenceAssemblyPaths.TargetFrameworkMoniker property) to compile the project as a .NET Framework 4.5 assembly or executable. This assembly or executable can then be used on any computer that has the .NET Framework 4.5, 4.5.1, 4.5.2, 4.6, or 4.6.1 installed.

  • In Visual Studio, you can choose the .NET Framework 4.5.1 as the target framework for a project (this sets the GetReferenceAssemblyPaths.TargetFrameworkMoniker property) to compile the project as a .NET Framework 4.5.1 assembly or executable. This assembly or executable should be run only on computers that have the .NET Framework 4.5.1 or a later version of the .NET Framework installed. An executable that targets the .NET Framework 4.5.1 will be blocked from running on a computer that only has an earlier version of the .NET Framework, such as the .NET Framework 4.5, installed, and the user will be prompted to install the .NET Framework 4.5.1. In addition, the .NET Framework 4.5.1 assemblies should not be called from an app that targets an earlier version of the .NET Framework, such as the .NET Framework 4.5 .

    The.NET Framework 4.5.1 and .NET Framework 4.5 are used here only as examples. This principle applies to any app that targets an a later version of the .NET Framework than the one installed on the system on which it is running.

Some changes in the .NET Framework may require changes to your app code; see Application Compatibility in the .NET Framework before you run your existing apps with the .NET Framework 4.5 or later versions. For more information about installing the current version, see Installing the .NET Framework. For information about support for the .NET Framework, see Microsoft .NET Framework Support Lifecycle Policy on the Microsoft Support website.

The .NET Framework versions 2.0, 3.0, and 3.5 are built with the same version of the CLR (CLR 2.0). These versions represent successive layers of a single installation. Each version is built incrementally on top of the earlier versions. It is not possible to run versions 2.0, 3.0, and 3.5 side by side on a computer. When you install version 3.5, you get the 2.0 and 3.0 layers automatically, and apps that were built for versions 2.0, 3.0, and 3.5 can all run on version 3.5. However, the .NET Framework 4 ends this layering approach. Starting with the .NET Framework 4, you can use in-process side-by-side hosting to run multiple versions of the CLR in a single process. For more information, see Assemblies and Side-by-Side Execution.

In addition, if your app targets version 2.0, 3.0, or 3.5, your users may be required to enable the .NET Framework 3.5 on a Windows 8 or Windows 8.1 computer before they can run your app. For more information, see Installing the .NET Framework 3.5 on Windows 8, Windows 8.1 and Windows 10.

Show: