More information about the versions of the .NET Framework that ship with Windows 8

Since the release of Windows 8 last fall, I’ve gotten a few questions about what versions of the .NET Framework ship with Windows 8 and how to install, uninstall and repair them.  Most of this information is documented in other places, but I wanted to put together a brief summary and post some links to hopefully make this information easier to find.

Windows 8 and the .NET Framework 4.5

Windows 8 includes the .NET Framework 4.5 as a part of the OS.  It is installed by default and it is not possible to remove it.

The .NET Framework 4.5 is an in-place upgrade for the .NET Framework 4, and applications built for the .NET Framework 4 will run if the .NET Framework 4.5 is present.  As a result, there is no need to install the .NET Framework 4 or 4.5 redistributable packages on Windows 8.  If you attempt to run the .NET Framework 4 or 4.5 redistributable installers on Windows 8, they will prevent you from installing the redistributable versions.  See this knowledge base article for more information about this scenario.

Windows 8 and the .NET Framework 2.0, 3.0 and 3.5

Windows 8 includes the .NET Framework 2.0, 3.0 and 3.5 as a part of the OS.  They are not installed by default, and it is possible to add or remove it by using the Windows Features control panel.  There is also an install-on-demand feature in Windows 8 that will prompt you to install the .NET Framework 2.0, 3.0 and 3.5 if you run an application that requires it.

If you attempt to run the .NET Framework 2.0, 3.0 or 3.5 redistributable installers on Windows 8, they will prevent you from installing the redistributable versions.

Here are links with more information about how to install the .NET Framework 2.0, 3.0 and 3.5 on Windows 8:

If you have an application that depends on the .NET Framework 2.0, 3.0 or 3.5, here are links with more information about options for automating the installation on Windows 8:

<update date="2/8/2013"> Added a link to a knowledge base article with more information about scenarios where installing the .NET Framework 4 or 4.5 redistributable package is blocked by Windows 8. </update>

Comments

  • Anonymous
    February 03, 2013
    Just one quick question. If my company has began deployment of Win8 machine but we have applications that need .NET v3.5, since it's now a feature and not seperate install package, how can we deploy them if we can't use the WSUS setting to do so (i.e. how can we remotely change a "Windows Feature" setting with GPO)? Normal users don't have local administrator right.

  • Anonymous
    February 03, 2013
    Oh, nevermind. It's included on the first link for automatic installation on Win8.

  • Anonymous
    February 14, 2013
    Thank you for the information.

  • Anonymous
    March 04, 2013
    Hi Aaron - We install dot net 4.0 as a pre-requisite.  On a Windows 7, machine without SP1, Dot net 4.0 needs a reboot. We are interested in capturing the return code from Dot net installer. We check for the 3010 return code. But in this case it returns 0 instead of 3010. When I read the "Microsoft .NET Framework 4 Setup_20130304_145209542.html" log file from temp, the reboot was initiated by some other msu installer which is installed as a part of dot net installation. My query is how can I check when dot net installer needs a reboot. Thanks in advance for the help.

  • Anonymous
    March 04, 2013
    Hi Kajal Biswas - I'm not sure how to explain this behavior.  The deployment guide at msdn.microsoft.com/.../ee942965(v=vs.100).aspx documents the return codes for .NET Framework 4 setup, and the only ones that should indicate that a reboot is required are 1641 and 3010.  Can you share your log so I can take a quick look and see if I can figure out what is happening in this scenario?

  • Anonymous
    March 04, 2013
    The comment has been removed

  • Anonymous
    March 04, 2013
    Final lines of the log says..... Final Result: Installation completed successfully with success code: (0x80070BC2), "The requested operation is successful. Changes will not be effective until the system is rebooted. " (Elapsed time: 0 00:02:14).

  • Anonymous
    March 05, 2013
    The comment has been removed

  • Anonymous
    March 05, 2013
    Hi Aaron - We are using GetExitCodeProcess to collect the return code from the dot net 4.0 installer. Its returning 0. It should return 3010 as you can see it in the log. Any clue will really help. Thanks.

  • Anonymous
    March 05, 2013
    It's working now. Thanks for your I puts.

  • Anonymous
    March 05, 2013
    Hi Kajal Biswas - I'm glad to hear that things are working now.  How did you end up solving this issue?

  • Anonymous
    March 06, 2013
    Hi Aaron - We were working on a Win 7 machine without SP1 to get the reboot from the Dot net 4.0 installer. However, we were uninstalling dot net 4.0 and repeating our tests. Now every time it installed after uninstallation, it returned 0 , as designed and we were not able to get a reboot actually. We reverted the machine and after installation it returned 3010.

  • Anonymous
    March 17, 2013
    установил W8, после запуска бетмена вылезает, на 7 такого не было Подробная информация об использовании оперативной (JIT) отладки вместо данного диалогового окна содержится в конце этого сообщения. ************** Текст исключения ************** System.Runtime.InteropServices.SEHException: Внешний компонент создал исключение. в BmLauncherLib.PhysXSDK.{ctor}(PhysXSDK* ) в BmLauncherUtils.PhysXSDK..ctor() в BmLauncher.Settings.DetermineDefaultPhysXLevel() в BmLauncher.Settings.StaticInitialise(IniFile iniFile, IniFile iniEng, IniFile iniInst, SystemInfo sysInfo, String localePath, String localeConfigFile) в BmLauncher.Form1.Initialise() в BmLauncher.Form1.OnLoad(Object sender, EventArgs e) в System.Windows.Forms.Form.OnLoad(EventArgs e) в System.Windows.Forms.Form.OnCreateControl() в System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible) в System.Windows.Forms.Control.CreateControl() в System.Windows.Forms.Control.WmShowWindow(Message& m) в System.Windows.Forms.Control.WndProc(Message& m) в System.Windows.Forms.ScrollableControl.WndProc(Message& m) в System.Windows.Forms.ContainerControl.WndProc(Message& m) в System.Windows.Forms.Form.WmShowWindow(Message& m) в System.Windows.Forms.Form.WndProc(Message& m) в System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m) в System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m) в System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam) ************** Загруженные сборки ************** mscorlib Версия сборки: 2.0.0.0 Версия Win32: 2.0.50727.6400 (Win8RTMGDR.050727-6400) CodeBase: file:///C:/Windows/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll


BmLauncher Версия сборки: 1.0.1.0 Версия Win32: 1.0.1.0 CodeBase: file:///D:/Games/Batman%20Arkham%20Asylum%20GOTY%20Edition/Binaries/BmLauncher.exe

System.Windows.Forms Версия сборки: 2.0.0.0 Версия Win32: 2.0.50727.6402 (Win8RTMGDR.050727-6400) CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Windows.Forms/2.0.0.0__b77a5c561934e089/System.Windows.Forms.dll

  • Anonymous
    March 17, 2013
    The comment has been removed

  • Anonymous
    March 18, 2013
    Hi Дмитрий - This error looks like it could be a problem with the game itself as opposed to a problem with the .NET Framework.  I'd suggest searching on the website for the game's manufacturer to see if they have any workarounds and/or patches for this type of problem.

  • Anonymous
    July 05, 2013
    Aaron, I have a Surface Pro and am trying to install the .NET Framework 3.5 on it to run some 3rd party software that requires it. It gives error 0x800f0906 saying can't connect to the Windows Update servers - no idea why this would be as I can download other updates and am online. The Surface Pro didn't come with a Windows 8 DVD (or a DVD player for that matter), so am I just stuck without being able to install and run my software?

  • Anonymous
    July 06, 2013
    Hi Simon D - I'd suggest trying the workarounds listed at support.microsoft.com/.../2734782 to see if they help in this scenario.  If they don't help, then I'd suggest posting a question on the forums at social.technet.microsoft.com/.../home.