Aaron Stebner's WebLog

Thoughts about setup and deployment issues, WiX, XNA, the .NET Framework and Visual Studio

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

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

Rate This
  • Comments 17

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>

 

  • 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.

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

  • Thank you for the information.

  • 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.

  • 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?

  • Thanks Aaron for the quick response.

    I'm not able to upload the full log file due to character limitation.

    I'll copy the some part of the log where the reboot originates.

    Launching CreateProcess with command line = wusa.exe "C:\0cdff4acf30ae511c52da9fa55\Windows6.1-KB958488-v6001-x86.msu" /quiet /norestart

    Exe (C:\0cdff4acf30ae511c52da9fa55\Windows6.1-KB958488-v6001-x86.msu) succeeded and requires reboot.

    Action complete

    WU Service successfully returned to disabled state after invoking MSU performer

    WU Service: DisableWUService succeeded

    WU Service: StopWUService succeeded

    Error 0x80070bc2 is mapped to Custom Error:

    Item Requested Reboot.

    Wait for Item (SetupUtility.exe) to be available

    SetupUtility.exe is now available to install

    Creating new Performer for Exe item

    Created new ExePerformer for Exe item

    Action: Performing Action on Exe at C:\0cdff4acf30ae511c52da9fa55\SetupUtility.exe

    Launching CreateProcess with command line = SetupUtility.exe /screboot

    Exe log file(s) :

    C:\Users\autolab\AppData\Local\Temp\dd_SetupUtility.txt

    Log File C:\Users\autolab\AppData\Local\Temp\dd_SetupUtility.txt exists and will be added to the Watson upload list

    Exe (C:\0cdff4acf30ae511c52da9fa55\SetupUtility.exe) succeeded and requires reboot.

    Exe Log File: dd_SetupUtility.txt

    Action complete

    Error 0x80070bc2 is mapped to Custom Error:

    Item Requested Reboot.

    Wait for Item (netfx_Core.mzz) to be available

    netfx_Core.mzz is now available to install

    Created new DoNothingPerformer for File item

    No CustomError defined for this item.

  • 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).

  • Hi Kajal Biswas - This error code is hex for 3010, and if that is the final line in the log, I'm expecting that the installer is returning that value and not 0.  How exactly are you checking the return code in your scenario?

  • 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.

  • It's working now. Thanks for your I puts.

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

  • 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.

  • установил 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

    ----------------------------------------

  • System

    Версия сборки: 2.0.0.0

    Версия Win32: 2.0.50727.6401 (Win8RTMGDR.050727-6400)

    CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System/2.0.0.0__b77a5c561934e089/System.dll

    ----------------------------------------

    System.Drawing

    Версия сборки: 2.0.0.0

    Версия Win32: 2.0.50727.6401 (Win8RTMGDR.050727-6400)

    CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Drawing/2.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll

    ----------------------------------------

    System.Management

    Версия сборки: 2.0.0.0

    Версия Win32: 2.0.50727.6387 (Win8RTM.050727-6300)

    CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Management/2.0.0.0__b03f5f7f11d50a3a/System.Management.dll

    ----------------------------------------

    BmLauncherUtils

    Версия сборки: 1.0.0.0

    Версия Win32: 1.0.1.0

    CodeBase: file:///D:/Games/Batman%20Arkham%20Asylum%20GOTY%20Edition/Binaries/BmLauncherUtils.DLL

    ----------------------------------------

    msvcm80

    Версия сборки: 8.0.50727.6910

    Версия Win32: 8.00.50727.6910

    CodeBase: file:///C:/Windows/WinSxS/x86_microsoft.vc80.crt_1fc8b3b9a1e18e3b_8.0.50727.6910_none_d089c358442de345/msvcm80.dll

    ----------------------------------------

    System.Xml

    Версия сборки: 2.0.0.0

    Версия Win32: 2.0.50727.6387 (Win8RTM.050727-6300)

    CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Xml/2.0.0.0__b77a5c561934e089/System.Xml.dll

    ----------------------------------------

    mscorlib.resources

    Версия сборки: 2.0.0.0

    Версия Win32: 2.0.50727.6400 (Win8RTMGDR.050727-6400)

    CodeBase: file:///C:/Windows/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll

    ----------------------------------------

    System.Windows.Forms.resources

    Версия сборки: 2.0.0.0

    Версия Win32: 2.0.50727.4927 (NetFXspW7.050727-4900)

    CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Windows.Forms.resources/2.0.0.0_ru_b77a5c561934e089/System.Windows.Forms.resources.dll

    ----------------------------------------

    ************** Оперативная отладка (JIT) **************

    Для подключения оперативной (JIT) отладки файл .config данного

    приложения или компьютера (machine.config) должен иметь

    значение jitDebugging, установленное в секции system.windows.forms.

    Приложение также должно быть скомпилировано с включенной

    отладкой.

    Например:

    <configuration>

    <system.windows.forms jitDebugging="true" />

    </configuration>

    При включенной отладке JIT любое необрабатываемое исключение

    пересылается отладчику JIT, зарегистрированному на данном компьютере,

    вместо того чтобы обрабатываться данным диалоговым окном.

  • 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.

Page 1 of 2 (17 items) 12
Leave a Comment
  • Please add 2 and 5 and type the answer here:
  • Post