Description of Preview of Quality Rollup for the .NET Framework 4.6, 4.6.1, 4.6.2, and 4.7 for Windows Server 2012: August 15, 2017

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


This August 2017 Update for Windows Server 2012 includes cumulative reliability improvements in the .NET Framework 4.6, 4.6.1, 4.6.2, and 4.7. 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.


  • 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


  • After the .NET Framework 4.7 is installed, when you try to open Sitefinity-based web applications, you may notice that they no longer work, and you receive a System.TypeInitializationException. This update fixes this issue.


  • Unpredictable crashes can occur when custom attributes are read from assemblies that carry an invalid metadata pattern that is emitted by certain pre-v2 compilers.
  • In some cases, a .NET Framework remoting IPC listener thread can stop working because of a race condition in IPCServerChannel.
  • When two threads try to load the same assembly, the process may crash.


  • When you try to insert items into the cache object by using the Insert overload method Cache.Insert(string, object, CacheDependency, DateTime, TimeSpan), you may notice that the inserted cache items expire much earlier or later than the DateTime (expiration time) that is specified. This fix corrects the cache’s internal time tracking for such items, so that they expire at the expected time.


  • Mixed mode Windows Presentation Framework (WPF) applications that handle first chance exceptions see System.Argument.Null exceptions, as TargetFrameworkName is NULL in mixed-mode applications. This update fixes this issue.
  • A WPF application may not always load resources from a resource dictionary assembly if two or more versions of the same assembly are loaded. This update addresses this issue.
  • A WPF application that is running on a touch/stylus-enabled system that creates new windows on separate dispatcher threads will experience a single handle leak per dispatcher thread. In some scenarios, this could lead to handle exhaustion over time.
  • On touch/stylus-enabled systems that have the May 2017 Preview of Quality Rollup for the .NET Framework 4.6, 4.6.1, and 4.6.2 (KB4104606) installed and subsequently had the .NET Framework 4.7 installed, WPF applications may crash on startup and return a COMException.

Windows Forms

  • Some Windows forms applications that use DataGridView or Menu controls, or that call constructor for Screen object repeatedly experience performance regressions in the .NET Framework 4.7 because of additional garbage collections or displayed empty UI because they run out of GDI+ handles that are allocated for the process. This occurs because an unnecessary graphics object was created for each Screen object and was not disposed of after the screen object was no longer needed. This fix removes those graphics objects.

Additional information about this update

For more information about this update as it relates to Windows Server 2012, see the following article in the Microsoft Knowledge Base:

4035037 August 2017 Preview of the Quality Rollups for the .NET Framework 3.5, 4.5.2, 4.6, 4.6.1, 4.6.2, and 4.7 for Windows Server 2012: August 15, 2017

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.

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 will open a browser window in which you may be prompted to install an ActiveX control. Install the ActiveX control to continue.
  5. Once the ActiveX control is installed, you will see the Microsoft Update Catalog screen. Type 4035037 in the Search box, and 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. When you have selected all the packages you need, click View Basket.
  8. Click Import to import the packages to your WSUS server.
  9. Click Close once the packages have been imported to return to WSUS.

The updates are now available for installation through WSUS.


To apply this update, you must have the .NET Framework 4.6, 4.6.1, 4.6.2, or 4.7 installed.

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 previously released update 4024846 that is dated July 18, 2017.

File information


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 2012