Mailbag: How to revert to older versions of the .NET Framework 4 family


Question:

I recently installed the .NET Framework 4.6.1 but ran into a compatibility issue with an application that I’m trying to use. How do I revert back to the .NET Framework 4.5 on my PC?

Answer:

All versions of the .NET Framework 4 family are in-place upgrades, which means that they replace previous versions of the .NET Framework 4 family instead of installing side-by-side.

When installing redistributable versions of the .NET Framework 4 family, that means that you must use the Programs and Features control panel to uninstall the newer version and then re-install the older version afterwards.

However, some versions of Windows include a version of the .NET Framework 4 family as a part of the operating system. On those versions of Windows, newer versions of the .NET Framework 4 family will be installed as OS update packages, and they must be uninstalled using the Installed Updates control panel.

This can be tricky because the OS update packages do not include .NET Framework in the name, so you need to know the KB number in order to find and uninstall newer versions of the .NET Framework 4 family, or if you know when you installed the newer version of the .NET Framework, you can sort the Installed Updates control panel by installed date and find it that way.

Some of the download pages for the .NET Framework 4 family also include information about which exact KB number will be installed on which versions of Windows. For example, if you go to the .NET Framework 4.6.1 download page and expand the Additional Information section, it lists the following:

When you install this package you will see following packages/updates installed as per operating system:

  • On Windows 7 SP1 / Windows Server 2008 R2 SP1, you will see the Microsoft .NET Framework 4.6.1 as an installed product under Programs and Features in Control Panel.
  • On Windows 8 / Windows Server 2012 you can find this as Update for Microsoft Windows (KB3102439) under Installed Updates in Control Panel.
  • On Windows 8.1 / Windows Server 2012 R2 you can find this as Update for Microsoft Windows (KB3102467) under Installed Updates in Control Panel.
  • On Windows 10 you can find this as Update for Microsoft Windows (KB3102495) under Installed Updates in Control Panel.

 

Comments (23)

  1. nihal says:

    I have manually installed .net 4.6.1 on my PC. In control panel i can see .net 4.5.1 and 4.6.1 and its derivatives.I checked my registry and it is showing that 4.6.1 is being used currently.I went ahead and uninstall 4.6.1 from control panel, results my VS2013 stopped working then i again uninstall 4.5.1 and reinstall it and VS2013 started working but my project is not building.
    I want to revert all the configuration to .net 4.5.1.Please help

    1. Hi Nihal – You will need to fully uninstall all versions of the .NET Framework 4 family from your PC, then re-install the .NET Framework 4.5.1 in order to fully revert from 4.6.1 to 4.5.1.

      If you do that and you still see build errors for your project, can you please reply and list the exact errors and I’ll see if I can come up with any additional suggestions for you to try?

  2. No Beezwax says:

    I can’t believe MS released a non-backward compatible 4.6 without a safeguard in place for those of us who use VS.

    1. Hi No Beezwax – With the exception of a very small number of known cases, the .NET Framework 4.6 is backwards compatible with .NET Framework versions from 4 through 4.5.2. What are the exact issues you are running into in your VS scenarios?

  3. Josh Korn says:

    Aaron,

    Thanks very much for this. I wasted several hours last night and this morning trying to follow official Microsoft documentation. Uninstalling KB3102467 did the trick first time.

    That documentation never does cut to the chase and explain that 4.6.1 is in fact installed as a KB update. To me, that seems like something that needs to be remedied, for the following reason:

    Installing SharePoint 2013 on a machine that already has .NET 4.6.1 fails, because the SharePoint installer doesn’t understand that .NET 4.6.1 is a valid substitute for .NET 4.5; the Pre-requisites installer is OK with 4.6.1, but the product installer itself makes a very newbie mistake in requiring exactly “4.5” and nothing else.

    1. BigM says:

      Doing a fresh install of Win 10 Anniversary Update. Driver for internal Intel HD graphics card fails – error request that “latest version of MS .NET Framework” be installed. Since it is a clean install, no way to uninstall the 4.6.2 version imbedded in the OS, and revert to an earlier version. BTW, had prior Win 10 update, upgraded from Win 7, no problem with HD graphics driver, which was already installed under Win 7.

      1. Hi BigM – This type of error typically means that the installer has an app compatibility issue with newer versions of Windows. I’d recommend searching on the Intel web site for an updated driver installer that is supported on the Windows 10 Anniversary Update.

  4. Pavel says:

    Hello
    I have 64 bit windows 8.1 enterprise.
    installed in virtually all updates.
    system is working properly.
    but ceased to run regular paint and wordpad.
    I tried to install the system software neopaint. everything went well, but it just will not start.
    on these and other grounds I came to the conclusion that has broken .NET Framework.
    I installed version of the .NET Framework 4.6.2.
    Manual installation x64-Windows8.1-KB3151864-x64 via dism an error.
    All installed updates I have not deleted because the key was used Dism.exe / online / Cleanup-Image / StartComponentCleanup / ResetBase.
    -like advise me to completely remove from the Microsoft .NET Framework 4.6.0-4.6.1-4.6.2 system and revert to the initial Microsoft .NET Framework 4.5.1 for windows 8.1?

    1. Hi Pavel – I don’t think programs like WordPad or Paint use the .NET Framework, so I’m not sure the .NET Framework is the root cause of the issues that you’re describing.

      If you want to fully remove the .NET Framework 4.6.2 on Windows 8.1, you’ll need to uninstall the entry that you see in the Programs and Features control panel, then go to View Installed Updates and remove this item (which is listed on the download page at https://www.microsoft.com/en-us/download/details.aspx?id=53344 under Additional Information):

      On Windows 8.1 / Windows Server 2012 R2 you can find this as Update for Microsoft Windows (KB3151864) under Installed Updates in Control Panel.

  5. Thanks for this article. This is very useful.

  6. Roger W says:

    I’m trying to identify specific build versions for a WEIRD issue

    x64 framework
    Dev PC 4.6.1080
    UAT 4.6.1080
    Prod 4.6.1086

    and of course the problem ONLY happens in Prod.

    I have a bunch of text boxes where the “Eval” places 0, and 1 where it puts in the right value
    If I take the first textbox with the problem and output the Eval as HTML – current value shows
    If I copy the first textbox (and change the ID) the correct value shows
    If I remove any other controls (like validators) that reference the first textbox, it still shows 0

    1. Hi Roger W – This sounds like a possible .NET Framework version compatibility issue, but I’m not familiar enough with the exact changes between those 2 versions of the .NET Framework to be able to say for sure. I’d recommend posting a question about your scenario on the .NET development forum at https://social.msdn.microsoft.com/Forums/vstudio/en-US/home?category=netdevelopment and hopefully someone there will be able to help you narrow down this issue further.

    1. Hi Ayane Aizawa – I’m sorry, but I don’t know the answer to this question. I’d suggest posting this question on the Windows Embedded forums at https://social.msdn.microsoft.com/Forums/en-US/home?category=embeddedwindows to see if someone there is able to help.

  7. EBH says:

    I need to revert to an older version of the .NET Framework to successfully run an application. Are there any concerns that the older version will affect other applications? And is there any concern for a newer version being automatically updated on the computer? Thank you for any and all help you can provide.

    1. Hi EBH – If you have applications that specifically require newer versions of the .NET Framework, then they will be affected if you remove the newer version. Most applications will show an error message if it requires a newer version of the .NET Framework that is not currently installed on the PC, and in some cases they will offer you the option to download and install it, so you should be able to recognize pretty quickly if you have any applications that might be affected by removing the newer version.

      I don’t know for sure what the automatic update policies are for the various versions of the .NET Framework. After you remove the newer version, you can visit Windows Update and see if it offers the newer version of the .NET Framework again, and if so, you should be able to ignore/skip/exclude it.

  8. Mo says:

    Hi Aaron – Your post has been very helpful. I had a couple of questions as I am not entirely privy when it comes to .Net Framework. I have a user that is attempting to use a software that is asking to be run on 3.5 but our PCs in the enterprise are on 4.6.1 the latest. So my question is, can both frameworks run concurrently/simultaneously on the PC since they are part of different trees, or do you need to uninstall the latest one, install the 3.5 and then run the application. Can they both coexist and then if the software that is ran needing 3.5 will see it installed?

    1. Hi Mo – The .NET Framework 3.5 can be installed side-by-side with a version of the .NET Framework from the version 4 family. All members of the .NET Framework 4 family are in-place upgrades, so you can only ever have one version from 4 to 4.7 installed on your PC at a time.

      1. Mo says:

        You are the MAN Aaron! Thank you.

  9. Mo says:

    Also, how I revert back to a different framework? and let’s say I do install the 3.5, will all other applications requiring 4.6.1 or equivalent not work?
    I am trying to understand the concept of what .Net Framework is? Can you explain please and when it is to be used.

      1. Mo says:

        Very helpful! THANK YOU!!

Skip to main content