Quality Rollup for .NET Framework 4.6, 4.6.1, 4.6.2, and 4.7 for Windows 7 SP1 and Windows Server 2008 R2 SP1 and for the .NET Framework 4.6 for Windows Server 2008 (KB 4043764)

Applies to: .NET Framework 4.7.NET Framework 4.6.2.NET Framework 4.6.1

Introduction


This Quality Rollup for Windows 7 Service Pack 1 (SP1) and Windows Server 2008 R2 SP1 includes cumulative reliability improvements in .NET Framework 4.6, 4.6.1, 4.6.2, and 4.7. Additionally for Windows Server 2008, this update includes cumulative reliability improvements in the .NET Framework 4.6. We recommend that you apply this update as part of your regular maintenance routines. Before you install this update, see the Prerequisites and Restart requirement sections.

Important

  • All updates for .NET Framework 4.6, 4.6.1, 4.6.2, and 4.7 require the d3dcompiler_47.dll update to be installed. We recommend that you install the included d3dcompiler_47.dll update before you apply this update. For more information about the d3dcompiler_47.dll update, see KB 4019990 for Windows 7 SP1 and Windows Server 2008 R2 SP1. Or, see KB 4019478 for Windows Server 2008.
  • If you install a language pack after you install this update, you must reinstall this update. Therefore, we recommend that you install any language packs that you need before you install this update. For more information, see Add language packs to Windows.

Quality and reliability improvements


Note This update also contains cumulative updates that were released previously starting from October 11, 2016.

Area

Description of the improvements

WPF

After you install the September 12, 2017, .NET Security and Quality Rollups that apply to the .NET Framework 4.6, 4.6.1, 4.6.2, and 4.7, you may experience rendering issues in Windows Presentation Foundation (WPF) applications that are run in Windows Services.

When this issue occurs, applications that render WPF visuals onto a bitmap, for example by using RenderTargetBitmap, generate black or transparent images. This can occur if the application is running in the following situations:

  • In a noninteractive Window Station (for example, in a Windows service)
  • Running as a LocalSystem account
  • Running interactively in Session 0 by using tools such as psexec.exe

For more information about this issue, see the following article in the Microsoft Knowledge Base:

4043601 Rendering issues after the September 12, 2017, .NET Security and Quality Rollups are installed

WPF applications that run in Windows Services

This fix automatically addresses this issue and reinstates rendering when a WPF application is run in Windows Services.

If a WPF application is a long-running process that is hosted in Windows Services,  it might be susceptible to a performance bug in WPF that causes it to consume disproportionate amount of CPU cycles in relation to their actual workload. Frequently, these applications eventually crash. An example of a long-running process in one that is not primarily intended to use WPF rendering in short bursts only, such processes as rendering occasional bitmaps.

The only supported solution in WPF for fixing this problem includes disabling rendering activities when no valid display devices are found. Applications that run in Windows Services can opt in to this performance fix by setting the Switch.System.Windows.Media.ShouldRenderEvenWhenNoDisplayDevicesAreAvailable AppContext switch. To do this, use one of the following methods.

  • Method 1: Registry

    Set the registry value to force the value to true.
     

    Registry locations

    HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework\AppContext
    HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\.NETFramework\AppContext

    Value name

    Switch.System.Windows.Media. ShouldNotRenderInNonInteractiveWindowStation

    Type

    REG_SZ

    Possible values

    "true"
    "false"

    Default

    "false"

  • Method 2: App.config file
     

    Add the following in the <AppContextSwitchOverrides> element of the application configuration file (App.Config):

    <configuration>     <runtime>          <AppContextSwitchOverrides value="Switch.Name.One=value1;Switch.Name.Two=value2;Switch.System.Windows.Media. ShouldNotRenderInNonInteractiveWindowStation=true" />     </runtime></configuration>

     

More information


The following articles provide information about supported .NET Framework versions for this Windows version. This includes the month and year of release, update replacement information, and help and support information for the update.

For Windows 7 SP1 and Windows Server 208 R2 SP1

4043766 October 2017 Security and Quality Rollup for .NET Framework 3.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, and 4.7 for Windows 7 SP1 and Windows Server 2008 R2 SP1 (KB 4043766)

For Windows Server 2008 SP2

4043768 October 2017 Security and Quality Rollup for .NET Framework 2.0 SP2, 4.5.2, and 4.6 updates for Windows Server 2008 SP2 (KB 4043768)

How to get this update


Windows Update

This update is available through Windows Update. When you turn on automatic updating, this update will be downloaded and installed automatically. For more information about how to get security updates automatically, see Windows Update: FAQ.

Microsoft Update Catalog

To get the stand-alone package for this update, go to the Microsoft Update Catalog website.

  • For Windows 7 SP1 and Windows Server 2008 R2 SP1, go here.
  • For Windows Server 2008, go here.

Windows Software Update Services (WSUS)

On your WSUS server, follow these steps:

  1. Click Start, click Administrative Tools, and then click Microsoft Windows Server Update Services 3.0.
  2. Expand ComputerName, and then click Action.
  3. Click Import Updates.
  4. WSUS opens a browser window in which you may be prompted to install an ActiveX control. You must install the ActiveX control to continue.
  5. After the ActiveX control is installed, you see the Microsoft Update Catalog screen. For Windows 7 SP1 and Windows Server 2008 R2 SP1, type 4043766. For Windows Server 2008 R2 SP1, type 4043768 in the Search box. Then, click Search.
  6. Locate the .NET Framework packages that match the operating systems, languages, and processors in your environment. Click Add to add them to your basket.
  7. After you select all the packages that you need, click View Basket.
  8. Click Import to import the packages to your WSUS server.
  9. To return to WSUS, click Close after the packages are imported.

The updates are now available for installation through WSUS.

Prerequisites

To apply this update, you must have the following installed:

  • For Windows 7 SP1 and Windows Server 2008 R2 SP1, .NET Framework 4.6, 4.6.1, 4.6.2 or 4.7.
  • For Windows Server 2008, .NET Framework 4.6.

Restart requirement

You must restart the computer after you apply this update if any affected files are being used. We recommend that you exit all .NET Framework-based applications before you apply this update.

Update replacement information

This update replaces updates 403503640321134035039 and 4032116.

File information

 

How to obtain help and support for this update


Applies to


This article applies to the following:

 

  • Microsoft .NET Framework 4.6, 4.6.1, 4.6.2, and 4.7 when used with:
    • Windows Server 2008 R2 Service Pack 1
    • Windows 7 Service Pack 1
  • Microsoft .NET Framework 4.6 when used with:
    • Windows Server 2008