.NET Framework 4.8 is available on Windows Update, WSUS and MU Catalog

Namrata Karnam

01/14/2020: This post has been updated with information about the Microsoft .NET Framework 4.8 for Windows Updates released on January 14, 2020 via Windows Update/WSUS/Catalog to include the servicing fixes since the .NET Framework 4.8 August 2019 Windows Update. Apart from the servicing fixes, there is no change in the .NET Framework 4.8 product from the August 13th, 2019 Windows update. Please see the FAQ section below for additional information about this refresh and the Cumulative update blogposts for details on the servicing fixes.

We are happy to announce that Microsoft .NET Framework 4.8 has been refreshed and is now available on Windows Update, Windows Server Update Services (WSUS) and Microsoft Update (MU) Catalog. This release includes all quality and reliability fixes since the .NET Framework 4.8 initial release.

.NET Framework 4.8 is available for the following client and server platforms:

  • Windows Client versions: Windows 10 version 1903, Windows 10 version 1809, Windows 10 version 1803, Windows 10 version 1709, Windows 10 version 1703, Windows 10 version 1607, Windows 8.1, Windows 7 SP1

  • Windows Server versions: Windows Server 2019, Windows Server version 1809, Windows Server version 1803, Windows Server 2016, Windows Server 2012, Windows Server 2012 R2, Windows Server 2008 R2 SP1

Note: Windows 10 May 2019 Update ships with .NET Framework 4.8 already included.

The updated .NET Framework 4.8 installers (which include the additional quality and reliability fixes) are available for download. * Web Installer * Offline Installer * Developer Pack Installer * All Packages

The updated .NET Framework 4.8 can be installed on top of the initial release of .NET Framework 4.8 from April 2019. All download links are provided at .NET Framework downloads.

Quality and Reliability Fixes

The following fixes were included in the August 2019 Windows update for .NET Framework 4.8. Please see the Cumulative update blogposts for details on the servicing fixes since the August update.

ASP.NET: * Fixed System.Web.Caching initialization bug when using ASP.NET cache on machines without IIS. [889110, System.Web.dll, Bug]

 Windows Forms: * Fixed the ability to select ComboBox edit field text using mouse down+move [853381, System.Windows.Forms.dll, Bug] * Fixed the issue with interaction between WPF user control and hosting WinForms app when processing keyboard input. [899206, WindowsFormsIntegration.dll, Bug] * Fixed the issue with Narrator/NVDA announcing of PropertyGrid’s ComboBox expanding and collapsing action. [792617, System.Windows.Forms.dll, Bug] * Fixed the issue with rendering “…” button of PropertyGrid control in HC mode to draw button background and dots contrasted. [792780, System.Windows.Forms.dll, Bug]

WPF: * Fixed a handle leak during creation of a Window in WPF applications that are manifested for Per Monitor DPI V2 Awareness.  This leak may lead to extraneous GC.Collect calls that can impact performance in Window creation scenarios.  [845699, PresentationFramework.dll, Bug] * Fixed a regression caused by the bug fix involving bindings with DataContext explicitly on the binding path. [850536, PresentationFramework.dll, Bug] * Fixed crash due to ArgumentNullException when loading a DataGrid containing a ComboBox while automation is active.  For example, when navigating Visual Studio to the Text Editor\C#\Code Style\Naming page in Tools\Options. [801039, PresentationFramework.dll, Bug] You can see the complete list of improvements for .NET Framework 4.8 in the .NET Framework 4.8 release notes.

Knowledge Base Articles

You can reference the following Knowledge Base Articles for the WU/WSUS/Catalog release:

OS Platform .NET Framework 4.8 Redistributable .NET Framework 4.8 Language Pack
Windows 7 SP1/Windows Server 2008 R2 KB4503548 KB4497410
Windows Server 2012 KB4486081 KB4087513
Windows 8.1/Windows Server 2012 R2 KB4486105 KB4087514
Windows 10 Version 1607 KB4486129 (Catalog Only) KB4087515 (Catalog Only)
Windows 10 Version 1703 KB4486129 KB4087515
Windows Server 2016 KB4486129 (Catalog Only) KB4087515 (Catalog Only)
Windows 10 Version 1709 KB4486153 KB4087642
Windows 10 Version 1803 KB4486153 KB4087642
Windows Server, version 1803 KB4486153 KB4087642
Windows 10 Version 1809 KB4486153 KB4087642
Windows Server, version 1809 KB4486153 (Catalog Only) KB4087642 (Catalog Only)
Windows Server 2019 KB4486153 (Catalog Only) KB4087642 (Catalog Only)


How is this release available?

Automatic Updates .NET Framework 4.8 is being offered as a Recommended update. The reliability fixes for .NET Framework 4.8 will be co-installed with .NET Framework 4.8. At this time, we’re not throttling the January release as we have done with previous .NET Framework releases.

Windows Server Update Services (WSUS) and Catalog

WSUS administrators will see this update in their WSUS admin console. The update is also available in the MU Catalog for download and deployment. When you synchronize your WSUS server with Microsoft Update server (or use the Microsoft Update Catalog site for importing updates), you will see the updates for .NET Framework 4.8 published for each platform.

More Information

Language Packs

In addition to the language neutral package, the .NET Framework 4.8 Language Packs are also available on Windows Update. These can be used if you have a previous language pack for .NET Framework installed as well as if you don’t, but instead have a localized version of the base operating system or have one or more Multilingual User Interface (MUI) pack installed.

Blocking the automatic deployment of .NET 4.8

Enterprises may have client machines that connect directly to the public Windows Update servers rather than to an internal WSUS server. In such cases, an administrator may have a need to prevent the .NET Framework 4.8 from being deployed to these client machines to allow testing of internal applications to be completed before deployment.

In such scenarios, administrators can deploy a registry key to machines and prevent the .NET Framework 4.8 from being offered to those machines. More information about how to use this blocker registry key can be found in the following Microsoft Knowledge Base article KB4516563: How to temporarily block the installation of the .NET Framework 4.8.


What do I need to do if I already have .NET Framework 4.8 product installed and want the reliability fixes?

If you installed .NET Framework 4.8 via Download site earlier, then you need to reinstall the product using the links at the top of the blog.

Do I still need to install updated .NET Framework 4.8 if I am getting .NET 4.8 from Windows Update/WSUS?

No, .NET Framework 4.8 via Windows Update and WSUS will install the product and the included reliability fixes.

Will the detection key (Release Key) for the product change after I install the updated .NET Framework 4.8?

No, the Release key value in the registry will remain the same. See here for guidance on product detection and release key value for .NET 4.8.

I am an IT Administrator managing updates for my organization. I see a new version of “Microsoft .NET Framework 4.8 for Windows” Updates and the ones from August 2019 (with same title) are expired. Should I deploy the new changes?

If you had not deployed .NET Framework 4.8 product from August 2019 or now wish to deploy the .NET Framework 4.8 product in your organization then please continue to approve the new update and let the old update expire. The January 2020 update just replaces the older update and has been refreshed with the latest servicing fixes as of January 14th, 2020. Apart from the servicing fixes, there is no change in the .NET Framework 4.8 product from the August 13th, 2019 Windows update.

Q: I have already installed/deployed the “Microsoft .NET Framework 4.8 for Windows” update from August 2019. Do I still need the January update (with the same title and KB number)?

If you have already installed the Windows update from August, you do not need to install the January product update for .NET Framework 4.8.

I download updates from the Microsoft Update Catalog to support my organization’s internet-disconnected scenarios. Do I need to install the “Microsoft .NET Framework 4.8 for Windows” updates from January 2020?

If you have installed the Microsoft .NET Framework 4.8 for Windows updates from August 2019, you do not need to install these updates from January 2020 otherwise please download and install the latest from the catalog. The Update titles and KB numbers remain the same as in August.    


Discussion is closed. Login to edit/delete existing comments.

  • Sebastian Rübesamen 0

    It looks like

    “Microsoft .NET Framework 4.8 for Windows 10 Version 1607 and Server 2016 for x64 (KB4486129)”


    “Microsoft .NET Framework 4.8 for Windows 10 Version 1607 (KB4486129)”

    are not published in WSUS but for newer Windows 10 versions they are – is there a special reason for that or was it just left out by mistake?

    • Namrata KarnamMicrosoft employee 0

      Hi Sebastian, responding to you and others with similar questions – yes some of the updates are catalog only by design and not available on WSUS. Please see the Knowledge Base Articles section in the blog above for clarity on which ones are Catalog only.

      • John Curtiss 0

        why? what is the “design”?

        • sky 0

          it means currently the upgrade is too buggy to fit many environments (like exchange). so you need to do it yourself if you want for windows server 2016/2019. Microsoft just let it go for old windows for testing and feedback.

  • Lapter, Adi 0

    Is there anyway to downgrade back to .Net 4.7 after this update was done? I have tried to downgrade but in the registry I still have .net 4.8.
    Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Client\1033 (version)

  • Luiza Capatina 0


    Since the last update of .Net Framework 4.8, namely KB4519568, My Desktop application built in C #, with WPF and WinForms through Visual Studio crash twice a day at about the same time. Stations that do not have this update have absolutely no problem. The application is targeting .NetFramework 4.7.2, although I have compiled it on 4.8. so it happens.
    The last time I had such a problem was in the .NetFramework 4.7.2 update, but I compiled it on 4.7.2 and it didn’t crash anymore.
    Have you been through such a situation?
    The error that occurs is in EventViewer:
    Faulting application name: Presentation.exe, version:, time stamp: 0x5db942cd
    Faulting module name: System.Windows.Forms.ni.dll, version: 4.8.4042.0, time stamp: 0x5d7a9e88

    All the best,
    Luiza Capatina

  • Mario Volarevic 0

    Since .NET 4.8 was updated via Windows Update on the machines in our company and our customers we are having serious issues with our WPF application which uses Infagistics controls.
    In some cases on refresh of the control (when notify changed is called) because Selected is not found (partial stack trace is posted below, 4 methods from our code are not included).
    Based on the behaviour it seems like something gets messed up in the ordering of layouting, rendering, displaying and selecting the data (like Dispatcher triggers in the wrong order).
    As soon as we uninstall the .NET 4.8 update, issue is not happening anymore.

    | System.InvalidOperationException: ‘Selected’ name cannot be found in the name scope of ‘System.Windows.Controls.ControlTemplate’.
    | at System.Windows.Media.Animation.Storyboard.ResolveTargetName(String targetName, INameScope nameScope, DependencyObject element)
    | at System.Windows.Media.Animation.Storyboard.ClockTreeWalkRecursive(Clock currentClock, DependencyObject containingObject, INameScope nameScope, DependencyObject parentObject, String parentObjectName, PropertyPath parentPropertyPath, HandoffBehavior handoffBehavior, HybridDictionary clockMappings, Int64 layer)
    | at System.Windows.Media.Animation.Storyboard.ClockTreeWalkRecursive(Clock currentClock, DependencyObject containingObject, INameScope nameScope, DependencyObject parentObject, String parentObjectName, PropertyPath parentPropertyPath, HandoffBehavior handoffBehavior, HybridDictionary clockMappings, Int64 layer)
    | at System.Windows.Media.Animation.Storyboard.BeginCommon(DependencyObject containingObject, INameScope nameScope, HandoffBehavior handoffBehavior, Boolean isControllable, Int64 layer)
    | at System.Windows.Media.Animation.BeginStoryboard.Begin(DependencyObject targetObject, INameScope nameScope, Int64 layer)
    | at System.Windows.StyleHelper.InvokeEventTriggerActions(FrameworkElement fe, FrameworkContentElement fce, Style ownerStyle, FrameworkTemplate frameworkTemplate, Int32 childIndex, RoutedEvent Event)
    | at System.Windows.StyleHelper.ExecuteEventTriggerActionsOnContainer(Object sender, RoutedEventArgs e)
    | at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
    | at System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args)
    | at Infragistics.Windows.DataPresenter.DataRecordCellArea.OnRecordPropertyChanged(Object sender, PropertyChangedEventArgs e)
    | at Infragistics.Windows.DataPresenter.DataRecordCellArea.System.Windows.IWeakEventListener.ReceiveWeakEvent(Type managerType, Object sender, EventArgs e)
    | at System.Windows.WeakEventManager.ListenerList.DeliverEvent(Listener& listener, Object sender, EventArgs args, Type managerType)
    | at System.Windows.WeakEventManager.ListenerList`1.DeliverEvent(Object sender, EventArgs e, Type managerType)
    | at System.ComponentModel.PropertyChangedEventManager.OnPropertyChanged(Object sender, PropertyChangedEventArgs args)
    | at System.ComponentModel.PropertyChangedEventHandler.Invoke(Object sender, PropertyChangedEventArgs e)
    | at Infragistics.PropertyChangeNotifier.OnPropertyChanged(String propertyName)
    | at Infragistics.Windows.DataPresenter.DataPresenterBase.UpdateSelectedItems(SelectedItemHolder selected)
    | at Infragistics.Windows.DataPresenter.DataPresenterBase.SelectNewSelection(Type type, SelectedItemHolder selected)
    | at Infragistics.Windows.DataPresenter.DataPresenterBase.InternalSelectItem(ISelectableItem item, Boolean clearExistingSelection, Boolean select)
    | at Infragistics.Windows.DataPresenter.Record.set_IsSelected(Boolean value)

    • Arpit Dev MathurMicrosoft employee 0

      Hi Mario, thanks for the bug report!

      Can you please file a Github issue at https://github.com/dotnet/wpf

      Please include the following in your issue.

      A sample application that reproduces the issue
      OS versions that you are seeing this on
      Whether the 4.8 upgrade is a patch to an existing 4.8 installation or an upgrade from 4.7.2 to 4.8

  • Barry Obie 0

    Oh man. I spent hours trying to figure out why 4.8 wasn’t showing in my WSUS updates for 2016 Servers. It wasn’t until I read through these comments that I discovered that was “by design.” I wish it was documented somewhere that was the case. I couldn’t understand why every where it said it was available on WSUS. I thought I had something misconfigured. But nope! Just “by design.”

Feedback usabilla icon