Microsoft .NET Framework 4.6 Microsoft .NET Framework 4.6.1 Microsoft .NET Framework 4.6.2 Microsoft .NET Framework 4.7 Microsoft .NET Framework 4.7.1 Microsoft .NET Framework 4.7.2
The February 25, 2020 update for Windows 8.1, RT 8.1, and Windows Server 2012 R2 includes cumulative reliability improvements in .NET 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2. 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 8.1, Windows RT 8.1, and Windows Server 2012 R2 require that update KB 2919355 is installed. We recommend that you install update KB 2919355 on your Windows 8.1-based, Windows RT 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
- Addresses an issue when using the WCFNetTcp binding. If a client stops responding during the connection handshake, sometimes a service will use the binding receive timeout instead of the open timeout. This update ensures that the correct open timeout is used during the entire handshake.
- Addresses an issue with rare crashes or deadlocks that could occur if a GC occurs while another thread is running NGen'ed code which makes the initial call into a static method within the same module where one or more parameter types involve type-forwarded value types.
- Addresses rare crashes that could occur if Server GC is enabled and a GC occurs while another thread is running NGen'ed code which is making the initial call into NGen'ed code in a 2nd module where one or more parameter types involve valuetypes defined in a 3rd module.
- The PAUSE instruction latency increased dramatically on the Intel Skylake processor (documented in "Section 2.2.4 Pause Latency in Skylake Microarchitecture" of the Intel 64 and IA-32 Architectures Optimization Reference Manual). [DOES THIS REFERENCE NEED TO BE A LINK?] As such places in the runtime that call YieldProcessor (which translates to this instruction) in a loop needed to adjust the number of iterations to call it. GC now takes a scale factor (provided by testing how long the instruction takes and scaling it down) and uses that to adjust the number of iterations so the total time approximates what happened on previous processors. A common symptom is in Server GC where GC spends a much larger percentage in CPU time inclr!SVR::t_join::join and with this change you should see the time go down to the previous percentage.
- Addresses an issue with a crash that could occur in some configurations involving either hot-added CPUs or multi-group machines where per-group CPU count is not consistent across all groups.
- Addresses an issue with a rare crash that can occur during the first call that native code makes into the managed portion of a mixed-mode DLL.
1 Windows Communication Foundation (WCF)
2 Common Language Runtime (CLR)
Additional information about this update
- 4538158 Description of the Preview of Quality Rollup for .NET Framework 3.5, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8 for Windows 8.1, RT 8.1, and Windows Server 2012 R2 (KB4538158)
How to obtain and install the update
Method 1: Windows Update
This update is available through Windows Update. Go to Settings > Update and Security > Windows Update, and then select Check for updates. For more information about how to get preview updates, see Windows Update: FAQ.
Method 2: Microsoft Update Catalog
To get the standalone package for this update, go to the Microsoft Update Catalog website.
Method 3: Windows Software Update Services (WSUS)
On your WSUS server, follow these steps:
- Select Start, select Administrative Tools, and then select Microsoft Windows Server Update Services 3.0.
- Expand ComputerName, and then select Action.
- Select Import Updates.
- WSUS opens a browser window in which you may be prompted to install an ActiveX control. You must install the ActiveX control to continue.
- After the ActiveX control is installed, you see the Microsoft Update Catalog screen. Type 4538158 into the Search box, and then select Search.
- Locate the .NET Framework packages that match the operating systems, languages, and processors in your environment. Select Add to add them to your basket.
- After you select all the packages that you require, select View Basket.
- To import the packages to your WSUS server, select Import.
- After the packages are imported, select Close to return to WSUS.
The updates are now available for installation through WSUS.
To apply this update, you must have .NET Framework 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2 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 replaces previously released updates 4535674.