Exchange 2013 CU16 and Exchange 2016 CU5 .NET Framework Requirement

As mentioned in the release posts for Exchange 2013 CU16 and Exchange 2016 CU5, both of these Exchange versions now require .NET framework 4.6.2 on all supported OS platforms.  This post focusses on Windows 2012 and 2012 R2 installations, see note below about Windows 2016.

Update 25-1-2018  Since the older versions of Exchange 2013 and 2016 CUs are no longer available, the Exchange Support Matrix has been updated with the below:

When upgrading Exchange from an unsupported CU to the current CU and no intermediate CUs are available, you should upgrade to the latest version of .NET that's supported by Exchange first and then immediately upgrade to the current CU. This method doesn't replace the need to keep your Exchange servers up to date and on the latest, supported, CU.
Microsoft makes no claim that an upgrade failure will not occur using this method, which may result in the need to contact Microsoft Support Services.


Exchange setup will check for the presence of the required .NET framework, if not present setup will halt.

This is also true when extending the AD Schema and preparing Active Directory.  If the machine where you are running the AD preparation commands does not have the required .NET framework, then the installer will log an error.   In the below example a Windows 2012 R2 domain controller, the Schema Master FMSO role holder, was used to initiate the PrepareSchema command.  This failed due to .NET not being updated on that server where the Exchange 2013 CU16 setup command was being executed:

setup.exe /IAcceptExchangeServerLicenseTerms /PrepareSchema

Exchange Setup Halted Due To Unsupported .NET Framework Version

For make benefit, most glorious search engines:

Microsoft Exchange Server 2013 Cumulative Update 16 Unattended Setup

Copying Files…
File copy complete. Setup will now collect additional information needed for installation.

Performing Microsoft Exchange Server Prerequisite Check

    Prerequisite Analysis                                                                                                 FAILED
This computer requires .NET Framework 4.6.2 (
For more information, visit:
The Exchange Server setup operation didn't complete. More details can be found in ExchangeSetup.log located in the<SystemDrive>:ExchangeSetupLogs folder.


If setup was launched on a Exchange server which was missing the .NET update, the same error will be logged.  This will be after the additional pre-flight checks are performed.

Exchange Setup Halted Due To Unsupported .NET Framework Version


Verify .NET Framework Version Installed

MSDN documents How to: Determine Which .NET Framework Versions Are Installed.  In the .NET 4.5 and 4.6 versions we can review the Release key in the registry which is located under:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full

Consult the MSDN reference article for all of the details.  In short, current server versions will typically report the below values.  If you do not have a value of 394806 on a Windows 2012 R2 system then it is time to upgrade .NET.

Release                    Operating System                                .NET Version          
394271 Non Server 2016 Systems 4.6.1
394802 Windows Server 2016 4.6.2
394806 Non Server 2016 Systems 4.6.2
461308 Windows Server 2016 4.7.1
461310 Non Server 2016 Systems  4.7.1
461308 Windows Server 2016 4.7.2
461814 Non Server 2016 Systems 4.7.2
528040 Windows 10 2019 H1 & H2 4.8
528372 Windows 10 H1 4.8
528049 Windows Server Server 4.8


We can check this quickly using PowerShell:

Get-ItemProperty -Path "HKLM:SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full" | Format-List Release


Verify .NET Framework Installed Using PowerShell

However, before upgrading .NET please review the next section.

Upgrading to Exchange 2013 CU16 or Exchange 2016 CU5

Since .NET 4.62 framework support was first added in Exchange 2013 CU15 and Exchange 2016 CU4 (for Windows Server 2012 and 2012 R2) this adds an upgrade step.  Framework 4.6.2 is not supported on earlier versions of Exchange when installed on Windows 2012 and Windows 2012 R2.  Exchange 2016 CU3 when installed onto Windows Server 2016 required .NET 4.6.2 though at the time of writing most customers are not in this position.

This means that you must consider the currently installed CU and also the currently installed .NET framework when planning this upgrade.

Ideally Exchange 2013 servers will already be on CU15, and Exchange 2016 servers will already be on CU4.  If this is the case then .NET can be upgraded prior to installing Exchange 2013 CU16 and Exchange 2016 CU5.  However if this is not the case then you cannot upgrade directly to the latest CU, you must:

  • Upgrade to Exchange 2013 CU15 or Exchange 2016 CU4
  • Only then perform the .NET upgrade to 4.6.2
  • Then upgrade to Exchange 2013 CU16 or Exchange 2016 CU5


Note: If upgrading to a newer CU, doing .NET upgrade and then to a later CU be sure to allow time for the .NET optimisation process to complete after .NET upgrade.  The .NET upgrade requires a reboot, and after the OS has restarted Exchange setup cannot start until the .NET optimisation process has completed.  This may take 30 minutes – see comments about running ngen.exe to speed this process up

C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319.1  ngen.exe executeQueuedItems


Please plan accordingly to ensure that .NET and Exchange are updated correctly in the right order.  You may also need to update additional machines if you require that separate teams must execute the AD and domain preparation steps.  This is common in larger customers, since the Exchange administrators will not have Enterprise Admin or Schema Admin rights in AD.

After updating .NET to 4.6.2 on the Schema Master, the Active Directory and domains can now be prepared.

After Updating .NET Framework to 4.6.2 Exchange Setup Completed



Rhoderick Milne [MSFT]

One Comment

Leave a Reply

Your email address will not be published. Required fields are marked *