This July 2017 Update for Windows 8.1, Windows Server 2012 R2, and Windows RT 8.1 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.
- All updates for Windows RT 8.1, Windows 8.1, and Windows Server 2012 R2 require update 2919355 to be installed. We recommend that you install update 2919355 on your Windows RT 8.1-based, Windows 8.1-based, or Windows Server 2012 R2-based computer so that you receive updates in the future.
- 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
This update contains cumulative updates that were released previously starting from October 11, 2016. Additionally, this update contains fixes to the following issues.
Common Language Runtime (CLR)
Preallocated jump stubs for dynamic methods are improved. Additionally, changes to AMD64 direct calls are improved to handle out-of-range cases better.
Fixes ordering of loader locks to avoid intermittent deadlock during GC with complex generic types.
When arranging array of struct A and array of struct B as SAFEARRAY and struct A/B has identical GUIDs, you may encounter a memory leak.
Entity Framework (EF)
If there are more than 1,000 queries in an EF 4.x application, the application may slow down because the size limit of the query cache. is exceeded. After you apply this fix, you can change the query cache size through the following appSettings entry:
<appSettings> <add key="EntityFramework_QueryCacheSize" value="3000"/> </appSettings>
An OverflowException or IndexOutOfRangeException may be thrown during the prelogin phase of opening a SQL Connection because a received TDS packet is smaller than expected.
When the client opens a connection to the server, sqlclient creates a handle and does not close it when the connection is disposed of. This can cause too many handle leaks if millions of connections open in a short time. This can cause the system to freeze. This fix closes the handles after the connection is closed.
White space normalization during schema validation is updated to conform with the W3C XML Schema specification.
Windows Management Infrastructure (WMI)
Windows Management Infrastructure (WMI) setting of privileges is event-driven to support changes in the option values.
Windows Presentation Framework (WPF)
A Windows Presentation Framework (WPF) application that runs on a touch-enabled or stylus-enabled device may experience crashes that are related to memory corruption in PenIMC.dll. This update addresses these issues.
Under certain conditions, WPF applications that use SpellCheck with custom dictionaries can crash abd return a NullReferenceException error. This especially applies to those applications that call into the SpellCheck.CustomDictionaries.Clear() method. This update addresses this issue.
Under certain conditions, the menu bar list of child windows in Multiple-Document Interface Windows Forms Applications gets out of sync with the actual list of open child windows. This makes it hard for end users to select the correct window.
Additional information about this update
For more information about this update as it relates to Windows 8.1, Windows Server 2012 R2, and Windows RT 8.1, see the following article in the Microsoft Knowledge Base:
4032115 July 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 8.1, Windows Server 2012 R2, and Windows RT 8.1: July 18, 2017
How to get this 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:
- Click Start, click Administrative Tools, and then click Microsoft Windows Server Update Services 3.0.
- Expand ComputerName, and then click Action.
- Click Import Updates.
- WSUS opens a browser window in which you may be prompted to install an ActiveX control. Install the ActiveX control to continue.
- After the ActiveX control is installed, you see the Microsoft Update Catalog screen. Type 4032115 in the Search box, and then click Search.
- Locate the .NET Framework packages that match the operating systems, languages, and processors in your environment. Click Add to add them to your basket.
- After you select all the packages you need, click View Basket.
- Click Import to import the packages to your WSUS server.
- To return to WSUS, click Close after the packages are imported.
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.
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 does not replace any previously released update.