Upgrade Paths for CU’s & .NET

4/22/2022: Updated for September CU updates.

Microsoft keeps track of the current supported combinations of .NET Framework and Exchange Cumulative Updates at the Exchange Server Supportability Matrix. However, as time progresses, support information on older Cumulative Updates might be removed from the information presented, and you may need to resort to cached versions of this page or other sources to find this information.

This might be problematic for organizations that are not current, and need to find out which upgrade path they are required to follow to stay within the boundaries of supported Exchange deployment configurations. For example, you may need to upgrade to a specific Cumulative Update first, that is supported with a newer release of the .NET Framework, in order to be able to upgrade to a later Cumulative Update.

For these situations, the following tables contains the supportability matrix, enhanced with information regarding earlier Cumulative Updates and .NET Framework versions. These will provide you the supported upgrade paths for older versions of Exchange.

Exchange 2019


Exchange 2016


Exchange 2013



  1. When possible, bypass .NET Framework 4.6.1, as it not only requires updating the CU level prior to updating the .NET Framework, but also requires an additional hotfix: kb3146715 (ws2012r2), kb3146714 (ws2012) or kb3146716 (ws2008r2).
  2. .NET Framework 4.7 is not supported for any product level.

Suppose your organization loves procrastinating, and you are running Exchange 2013 CU6. Luckily, you run it on .NET Framework 4.5.1, which was already a supported configuration back in 2014 – yes, it’s been that long. Looking at the table, to get current with a minimal number of updates in mind, you can derive the following path:

The upgrade path to CU19 would therefor be:

  1. Upgrade to Exchange 2013 Cumulative Update 15
  2. Upgrade .NET Framework to 4.6.2
  3. Upgrade to Exchange 2013 Cumulative Update 19
  4. Upgrade .NET Framework to 4.7.1 (Optional)

Note that in addition to information being refreshed on Microsoft pages, availability of older Cumulative Updates or .NET Framework updates might also change, so archive those files accordingly, if not for recovery of existing Exchange servers, then for this exact purpose.

Of course, you should stay current as possible from a support and security perspective, making the above a non-issue. Reality is, there are customers who have reasons, legitimate or not, to be trailing with updates in their environment, and at some point may need guidance on how to proceed in order to get current. I hope this information helps in those situations.

Thoughts and feedback is welcomed in the comments.

Update: Per February 13th, Microsoft updated upgrade guidance on the Exchange Supportability Matrix page, stating:

“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”.

This means you will be supported when upgrading in the revised upgrade path, but the risk is still there. In the example above, when going from Exchange 2013 CU6 with .NET 4.5.1 to CU19, the support statement indicates you can upgrade to .NET Framework 4.7.1, when install CU19. However, things might break and you may need to contact support to get back in a supported, working situation. Therefor, I repeat my recommendation to download and archive CU’s and .NET Framework files, even when you are not planning on installing them (yet).

99 thoughts on “Upgrade Paths for CU’s & .NET

  1. Pingback: December 2017 Updates Released for Exchange Server

  2. Pingback: Лабиринт обновлений Exchange Server | ILYA Sazonov: ITPro

  3. Pingback: Exchange December 2017 Updates - SuperTekBoy

  4. Pingback: Quick method to determine installed version of .NET Framework | Troubleshooting Exchange

  5. Pingback: Download that new Cumulative Update for Exchange…While you can. – No One Uses Email Anymore

  6. Pingback: Monthly IT Newsletter – November 2017–January 2018 – Guy UC World

  7. Any idea where to still get CU4? MS has pulled it and it is no longer available even though I must update to CU4 and then .net to get to CU8.


  8. Pingback: Guidance for Solving Outdated Exchange CU and .NET FX Versions

  9. Pingback: You should upgrade to the latest version of .NET that’s supported by Exchange first and then immediately upgrade to the current CU | DigitalBamboo's Blog

  10. Pingback: Yes, Virginia. You can upgrade to the latest Exchange Cumulative Update – even if you aren’t keeping up on those .Net versions! – No One Uses Email Anymore

  11. Pingback: Exchange March 2018 Updates - SuperTekBoy

  12. Pingback: Exchange Updates – March 2018 | EighTwOne (821)

  13. Pingback: Exchange 2016 CU9 and Exchange 2013 CU20 released | Jaap Wesselius

  14. Pingback: .NET Framework 4.7.2 | EighTwOne (821)

  15. Pingback: Exchange June 2018 Updates - 2016 CU10 & 2013 CU21

  16. Pingback: Exchange Updates – June 2018 | EighTwOne (821)

  17. Thank you very much for a great article. This is very helpful, but I have an additional parameter I would like ask about. I have Exchange 2016 CU4 with .NET 4.6.2. My latest Windows update (Windows 2016) was quite a while ago, and I see that the latest Windows update installs .NET 4.7.1. Should I update Exchange to either CU 8 or CU9, install .NET 4.7.1, then update Windows 2016; or should I update Windows using the registry key to prevent automatic installation of .NET 4.7.1 then update Exchange to CU8 or 9, then install .NET 4.7.1?


    • Per latest policy, you can update to the latest .NET first, then install the latest CU supported for that .NET version (eg 471 and CU10). However, there is still a risk walking an untested path, also when 3rd party software is involved. A safe alternative could indeed be CU8 or 9, NET 471 then CU10. OS updates shouldn’t install NET Framework updates, but there were incidents in the past with Windows Update – hence the reg. key blockers


  18. Hi Michel, such a great article!! many thanks, very helpful.

    I got a new client with the below scenario:
    CU3 currently installed
    planning upgrated to CU10
    VisualC++2013 installed
    (Get-ItemProperty ‘HKLM:\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full’ -Name Release).Release
    retrieves 461310 =4.7.1
    Can i proceed with the CU10? is there any risk?

    thanks again!


    • Microsoft revised its support statement, you are now OK to install NET4.7.1 first on CU3 (which you already did), then apply CU10. However, Microsoft makes no warranties in those untested upgrade paths, but you are on a supported path. Note that ‘risk’ does not always come from Exchange itself but may also involve installed 3rd party software.


  19. Hello Michel,

    Exchange servers in my organization are running CU 13 With .net version 4.5.2 and I am planning to upgrade to the latest CU 20. But in order to reach CU 20 I need to go to CU 15 upgrade .net to 4.6.2 and then upgrade to CU 20. The problem in this case I can’t get the CU 15 upgrade download any where. Can you help me on how to move ahead!


  20. We have been running Exchange 2013 CU12 for years and I finally got around to updating to CU21. Came across this article and found our server already had .NET 4.7.2 installed (release 461814) and has been working fine with this combination. According to your matrix this is not at all supported, am I missing something? Are there only certain features of Exchange which rely on .NET that we perhaps don’t use?


      • Installed CU21 right on top of existing CU12 and no issues so far, all is working normally. No idea when .NET 4.7.2 got installed but seems the server had been running it for some time even with only with CU12. One would think that Windows Update would not automatically roll out an incompatible .NET update if it detects and older version of Exchange installed if there really is an incompatibility?


        • There have been incidents in the past where .NET Framework upgrades got published as recommended updates which lead to unwanted automatic deployments (in those cases the blockade registry keys are a valuable precaution).


  21. Pingback: Exchange Updates–October 2018 | EighTwOne (821)

  22. Pingback: Exchange June 2018 Updates - 2016 CU11 (but no 2013?)

  23. Pingback: Exchange Updates – February 2019 | EighTwOne (821)

  24. According to your matrix I am not able to see our current combination:
    Exchange 2013 CU 11 & .Net 4.7.0
    Not sure when .Net is upgraded to 4.7.0
    Our aim is to upgrade Exchange 2013 to CU22
    Do you have any suggestion on possible upgrade path?



  25. Hi Michel,
    Due to some unknown reason one of my CAS and one mail Mailbox server are now with dot net 4.7.2, reset are on dot net frame work 4.7.1,.
    Currently we are on CU 20, and want to move to CU22
    So which will be the best and safest approach,
    update rest of servers to dot net 4.7.2 and then upgrade to CU22
    upgrade to CU 22 and then update dot-net frame work 4.7.2 on rest of servers.


  26. Pingback: Exchange Updates – June 2019 | EighTwOne (821)

  27. Pingback: .NET Versions and Exchange | Just A UC Guy

  28. Pingback: Exchange Updates – Sep. 2019 | EighTwOne (821)

  29. Hi Michel,

    thank you indeed, you saved me hours of research!

    I need to update Exchange 2013 CU9 to CU23 and already have 4.7.2 installed. In wonder why we don´t have any issues with that constellation!?



  30. Pingback: Exchange Updates – December 2019 | EighTwOne (821)

  31. Pingback: Exchange 2016 CU14 and Exchange 2019 CU4 released | Jaap Wesselius

  32. Pingback: Exchange 2016 CU15 and Exchange 2019 CU4 released | Jaap Wesselius

  33. Pingback: Exchange Updates – March 2020 | EighTwOne (821)

  34. Hello All

    My customer has Exchange 2016 CU5 and along the way someone has updated the server to .Net Framework 4.7.0. What can I do about updating .Net Framework and getting Exchange to CU14 supported by .net 4.7.2 or CU 16 supported by 4.8?

    Is it fine to follow Josh’s advice and put the server in maintenance mode and then update to 4.7.2 or 4.8 and then install the respective CU14 / CU16.

    4.7.0 is not supported by any CU so I don’t have a safe upgrade path.

    Thank you


    • I’d put server in maintenance, update to 4.7.2 and CU14, followed by 4.8 and CU16 ending with taking it out of maintenance. This is where testing environments come in handy, especially if 3rd party software is involved.


  35. Pingback: Exchange Updates – June 2020 | EighTwOne (821)

  36. Hi, sorry but I want to be sure about that,
    so if I have Exchange 2019 CU 2 and .Net 4.7.03190 I need to install .Net 4.8 before install Exchange 2019 CU 6 or not?
    Thank you very much.


  37. Pingback: ИТ Вестник №12.2017 - Блог IT-KB

  38. Pingback: Exchange Updates – September 2020 | EighTwOne (821)

  39. Pingback: Exchange Updates – December 2020 | EighTwOne (821)

  40. Pingback: Annual Report 2020 | EighTwOne (821)

  41. Pingback: Zero Day Vulnerabilities Discovered in all Versions of Microsoft Exchange Server | Jaap Wesselius

  42. Great gudies,thanks.
    I will plan to update Exchange 2013 CU7 to CU23 with .Net 4.8.0 installed at first,then need to update KB5000871 for these CVEs 😦


  43. Pingback: Security Update Exchange 2010-2019 (Mar2021) | EighTwOne (821)

  44. It would be wonderful if Microsoft made available some of the older CU’s instead of having to call support to get them in the midst of a bunch of zero day attacks. I guess the choice is either risk getting compromised or risk blowing up a server and in either case, don’t call Micro$oft for at least a week. What a joke.


      • Some admins have more to worry about than just exchange. I had assumed installing regular updates meant the exchange server was updated. Stupid probably, but again, exchange is one of many applications in my environment. From what I understand, having the latest CU with all the security updates would have meant being completely vulnerable up until Wednesday of this week anyway.


        • Vulnerable for HAFNIUM; you’re forgetting all the exploits fixed between CUx and current ones. For this reason I always recommend business to archive those CU’s, whether they install them directly, skip them or not. You also don’t want to encounter unexpected challenges during recovery scenarios.


  45. Pingback: URGENT: Zero Day Vulnerabilities for Exchange Server – Dine.ga

  46. Michel, we have a client on 2016 RTM running 4.6.2 (unsupported however functional). We need to take them to CU19 urgently. What would you propose? Straight upgrade to CU19 and then install .NET 4.8? Or try to obtain ISOs and move to the supported CU for 4.6.2 first?



  47. Hi Michel. I run exchange 2013 DAG with two mailbox servers and a CAS. currently on CU5 installed on .net 4.6.1. whats the best upgarde path to CU23?


    • Tested upgrade path should be through: Ex2013CU5/NET461 -> Ex2013CU15/NET461 -> Ex2013CU15/NET462 -> Ex2013CU20/NET462 -> Ex2013CU20/NET471 -> Ex2013CU22/NET472 -> Ex2013CU23/NET472 -> Ex2013CU23/NET48.
      However, obtaining intermediate CUs would be a challenge as out of support CUs are not available through regular download channels without contacting support.

      Supported upgrade path would therefor be: Ex2013CU5/NET461->Ex2013CU23/NET48, where you upgrade NET first immediately followed by installing the CU, per MS support statement (pls read): “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. 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”.


  48. Pingback: EighTwOne (821)

  49. Pingback: Exchange Updates – March 2021 | EighTwOne (821)

  50. Hi Michel, have an exchange 2016 CU5 (.net 4.6.2) that I want to take to CU20 (.Net 4.8). According to your tables I would need to update to CU8 or CU9 then update .Net to 4.7.1 at this point i could update to CU11 or CU12. I would then update >net to 4.7.2 and CU14. At my final stage i would need to update .Net to 4.8 and CU20. Just asking for a confirmation I am following the chart correctly. Thanks.


  51. Pingback: Exchange Updates – June 2021 | EighTwOne (821)

  52. Pingback: Exchange Updates – September 2021 | EighTwOne (821)

  53. Pingback: Exchange Updates (and more) – H1 2022 | EighTwOne (821)

  54. Pingback: Exchange 2016, CU Updatepath / .NET kompatibilität | Gumpert IT Wiki

  55. Pingback: Exchange Updates (and more) – H1 2023 | EighTwOne (821)

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.