【解決方法】WindowsUpdateで.NET Core Security Updateが失敗する

事象

Windows Updateにおいて、.NET CoreのSecurity Updateでエラーコード「0x80070643」 、「0x8024000B」が発生し、失敗する件についての解決方法です。

この事象は、パッケージなどで発生します。
「.NET Core 3.1.xx Security Update for x64 Client (KB5004772)」など.NET Core 3系のセキュリティアップデート
「.NET Core 5.0.xx Security Update for x64 Client (KB5004698)」など.NET Core 5系のセキュリティアップデート

原因

本現象は、2020年12月より.NET Core関連のパッケージが”Microsoft” Update経由で配信されるようになったことが大きく影響しています。

Visual Studioをインストールすると「Microsoft .NET Core SDK x.x.xxx (x64) from Visual Studio」のようなSDKパッケージが依存でインストールされますが、このパッケージが「.NET Core Security Update」と競合しているようです。

Windows Update
Microsoft Updateの機能のうちWindows関連のみに限定されたものである。具体的にはWindows自身やWindowsに含まれるソフトウェア(Microsoft EdgeやWindows Media Playerなど)、デバイスドライバの更新を行える。

Microsoft Update
マイクロソフトが提供するWindows、Microsoft Officeなどのソフトウェア、およびデバイスドライバのダウンロードと更新を行うためのウェブサイトである。主にセキュリティ更新やバグ修正等が行われる。

Wikipediaより

つまり、
Windows Update … OSに関する更新
Microsoft Update … OS以外のMicrosoft関連の更新

解決方法

Visual Studioで「更新プログラムの確認」を行う

Visual Studioの[ヘルプ]>[更新プログラムの確認](*)から、.NET Core関連のパッケージのアップデートを行います。
(*)Visual Studioのバージョンによって異なる場合があります。

アップデートが終わったら、もう一度Windows Updateを行ってください。

Windows UpdateでMicrosoft製品の更新プログラムを受け取らないようにする

先に述べた通り、.NET Core関連のパッケージがMicrosoft Updateで配信されるようになったのが大きく影響しています。通常、Windows Updateでは、Microsoft Updateは行われませんが何かの拍子で有効になっている可能性があります。

.NET Coreのバージョンを上げたくない場合は、Windows Updateの詳細オプションより、[Windowsの更新時に他のMicrosoft製品の更新プログラムを受け取る]をオフにしてください。ただ、特別な理由がない限り、基本的にバージョンは上げるべきです。

まとめ

最近、発生し始めた事象の様で、Visual Studioを入れたまま使わないと発生しやすいようです。