Skip to content

Commit a88a826

Browse files
committed
.NET MU docs
1 parent 0cae9f1 commit a88a826

File tree

2 files changed

+71
-0
lines changed

2 files changed

+71
-0
lines changed
Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
---
2+
author: joeloff
3+
ms.author: joeloff
4+
ms.date: 11/12/2024
5+
ms.topic: include
6+
---
7+
8+
.NET is an independent product that can be serviced using Microsoft Update (MU) on Windows. This is different from Windows Update (WU) that is used to service operating system components like .NET Framework.
9+
10+
Both security and non-security fixes for supported versions of .NET are provided through MU using multiple distribution channels. Automatic Updates (AU) is relevant to end-users and consumers while Window Server Update Services (WSUS) and Windows Update Catalog are relevant to IT administrators.
11+
12+
The .NET installer executables support side-by-side (SxS) installations across major/minor releases for different architectures and components (runtime, SDK, etc.). For example, users can install both the 6.0.15 (x64) and 6.0.17 (x86) runtime. When MU triggers, it will offer the latest installer for both installations.
13+
14+
### Blocking Updates
15+
16+
While most users prefer to be kept up to date, it is possible to block .NET updates using the registry keys in the table below.
17+
18+
| .NET Version | Registry Key | Name | Type | Value |
19+
| -------------- | :--------- | :---------- | :---------- | :---------- |
20+
| All | HKLM\SOFWARE\Microsoft\\.NET | BlockMU | REG_DWORD | 0x00000001 |
21+
| .NET 9 | HKLM\SOFWARE\Microsoft\\.NET\9.0 | BlockMU | REG_DWORD | 0x00000001 |
22+
| .NET 8 | HKLM\SOFWARE\Microsoft\\.NET\8.0 | BlockMU | REG_DWORD | 0x00000001 |
23+
| .NET 7 | HKLM\SOFWARE\Microsoft\\.NET\7.0 | BlockMU | REG_DWORD | 0x00000001 |
24+
| .NET 6 | HKLM\SOFWARE\Microsoft\\.NET\6.0 | BlockMU | REG_DWORD | 0x00000001 |
25+
| .NET 5 | HKLM\SOFWARE\Microsoft\\.NET\5.0 | BlockMU | REG_DWORD | 0x00000001 |
26+
| .NET Core 3.1 | HKLM\SOFWARE\Microsoft\\.NET\3.1 | BlockMU | REG_DWORD | 0x00000001 |
27+
| .NET Core 2.1 | HKLM\SOFWARE\Microsoft\\.NET\2.1 | BlockMU | REG_DWORD | 0x00000001 |
28+
29+
### Automatic Updates for Server OS
30+
31+
Updates for server operating systems are supported by WSUS and Microsoft Update Catalog, but not AU. Server operating systems can opt in to receive updates through AU using the following registry keys.
32+
33+
| .NET Version | Registry Key | Name | Type | Value |
34+
| -------------- | :--------- | :---------- | :---------- | :---------- |
35+
| All | HKLM\SOFWARE\Microsoft\\.NET | AllowAUOnServerOS | REG_DWORD | 0x00000001 |
36+
| .NET 9 | HKLM\SOFWARE\Microsoft\\.NET\9.0 | AllowAUOnServerOS | REG_DWORD | 0x00000001 |
37+
| .NET 8 | HKLM\SOFWARE\Microsoft\\.NET\8.0 | AllowAUOnServerOS | REG_DWORD | 0x00000001 |
38+
| .NET 7 | HKLM\SOFWARE\Microsoft\\.NET\7.0 | AllowAUOnServerOS | REG_DWORD | 0x00000001 |
39+
| .NET 6 | HKLM\SOFWARE\Microsoft\\.NET\6.0 | AllowAUOnServerOS | REG_DWORD | 0x00000001 |
40+
| .NET 5 | HKLM\SOFWARE\Microsoft\\.NET\5.0 | AllowAUOnServerOS | REG_DWORD | 0x00000001 |
41+
| .NET Core 3.1 | HKLM\SOFWARE\Microsoft\\.NET\3.1 | AllowAUOnServerOS | REG_DWORD | 0x00000001 |
42+
43+
### Framework-Dependent Deployed Applications
44+
45+
**NOTE:** This feature is only available in .NET 8 (8.0.36 and later), .NET 9 and later versions.
46+
47+
Because updates provided through MU execute quietly, users will not be prompted to close running applications. The Restart Manager service is responsible for closing and restarting applications and depends on a number of factors:
48+
49+
- The type (UI or console) of the application or service.
50+
- The security identifiers (SID) associated with the installation and application processes.
51+
- Windows Installer machine policies.
52+
- Whether or not an application was registered with Restart Manager.
53+
54+
Since MU executes the local system account (NT Authority\SYSTEM), framework-dependent deployed (FDD) user applications may continue to run. The update process will first install the new .NET version before removing previous installations. When the running application tries to load additional assemblies it will crash because the previous runtime no longer exists. To mitigate this, users can defer the removal of the previous .NET version until a member in the Administrators group log on after a reboot using the registry keys below.
55+
56+
| .NET Version | Registry Key | Name | Type | Value |
57+
| -------------- | :--------- | :---------- | :---------- | :---------- |
58+
| All | HKLM\SOFWARE\Microsoft\.NET | RemovePreviousVersion | REG_SZ | *always*, *never*, or *nextSession* |
59+
| .NET 9 | HKLM\SOFWARE\Microsoft\.NET\9.0 | RemovePreviousVersion | REG_SZ | *always*, *never*, or *nextSession* |
60+
| .NET 8 | HKLM\SOFWARE\Microsoft\.NET\8.0 | RemovePreviousVersion | REG_SZ | *always*, *never*, or *nextSession* |
61+
62+
- *never* retains previous installations and requires manual intervention to remove previous .NET installations.
63+
- *always* removes previous installations after the new version is installed. This is the default behavior in .NET.
64+
- *nextSession* defers the removal until the next logon session from members in the Administrators group.
65+
- Values are case-insensitive and invalid values default to *always*.
66+
67+
When the removal is deferred, the installer writes a command to the [RunOnce](https://learn.microsoft.com/windows/win32/setupapi/run-and-runonce-registry-keys) registry key to uninstall the previous version. The command only executes if users in the Administrators group logs on to the machine.

docs/core/install/windows.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -346,6 +346,10 @@ To learn how to use the .NET CLI, see [.NET CLI overview](../tools/index.md).
346346
347347
[!INCLUDE [verify-download-windows](includes/verify-download-windows.md)]
348348
349+
## Microsoft Update
350+
351+
[!INCLUDE [microsoft-update](includes/microsoft-update.md)]
352+
349353
## Troubleshooting
350354
351355
After installing the .NET SDK, you might run into problems trying to run .NET CLI commands. This section collects those common problems and provides solutions.

0 commit comments

Comments
 (0)