.NET Framework の更新プログラムを手動でインストールする際の注意事項について
こんにちは、Visual Studio サポート チームです。
今回は、.NET Framework の更新プログラムの構成と、更新プログラムを手動でインストールする場合の注意事項についてご案内します。
なお、Windows Update の自動更新や WSUS (Windows Server Update Services) をご利用の場合には、本内容は該当しません。また、Windows 10 や Windows Server 2016 については、.NET Framework の更新プログラムは OS の更新プログラムに含まれる形で提供されているため、本内容は該当しません。
.NET Framework の更新プログラムの構成について
こちらのドキュメントで紹介されているように、.NET Framework の更新プログラムは、「セキュリティおよび品質ロールアップ」、「セキュリティのみの更新プログラム」、「品質ロールアップ プレビュー」の 3 種類の形態で提供されています。
これらの更新プログラムのパッケージは、以下のように、「(A) .NET Framework の各バージョン向けのパッケージを対象 OS ごとにまとめた KB」 と、「(B) 更新プログラムの実体の KB」から構成されています。
<更新プログラムの構成>
(A) 各バージョン向けを OS ごとにまとめた KB
(B-1) .NET Framework 4.5.2 向けの KB
(B-2) .NET Framework 4.6 以上向けの KB (*1)
(B-3) .NET Framework 3.5 向けの KB
(B-4) 問題発生時の修復用プログラム (msipatchregfix.exe) (*2)
(B-5) .NET Framework 4.7 の前提となるKB4019990 (未適用の場合、B-2 の適用時に必要な場合あり)
(*1) .NET Framework 4.6 以上では更新プログラムは共通化されており、例えば、.NET Framework 4.6 と .NET Framework 4.7.2 でも更新プログラムは共通です。
(*2) 手動で更新プログラムをインストールする場合、msipatchregfix.exe は不要です。
一例として、Windows 7 および Windows Server 2008 R2 向けの 2018 年 5 月の 「セキュリティおよび品質ロールアップ (KB4099633)」の場合は、以下の 5 つのファイルから構成されており、Microsoft Update カタログ上から公開されています。
前述の順に並べると以下のとおりです。
(A) 2018-05 Security and Quality Rollup for .NET Framework 3.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1 on Windows 7 and Server 2008 R2 for x64 (KB4099633)
(B-1) ndp45-kb4096495-x64_41a96e508184f9dac887e02a2c1caf75842a4e95.exe
(B-2) ndp47-kb4096418-x64_09433765a4d90e1a2295da0a1a1cf9b1b8a64f56.exe
(B-3) windows6.1-kb4095874-x64_13904512d1614ba1a336061e90f7078becf3be5a.msu
(B-4) msipatchregfix-amd64_5011cb29b096fb674a4795ee8fc2f7fdad33863a.exe
(B-5) windows6.1-kb4019990-x64_35cc310e81ef23439ba0ec1f11d7b71dd34adfe5.msu
例えば、対象の環境に .NET Framework 3.5 と .NET Framework 4.5.2 がインストールされている場合は、上記の (B-1) と (B-3) のみをインストールします。
それぞれの KB 番号に対応したドキュメント (KB4096495、KB4096418、KB4095874、KB4019990) も公開されていますので、対象の環境にインストールすべき更新プログラムがどれであるのかご確認ください。対象の環境にインストールされている .NET Framework のバージョンを確認する方法については、こちらのドキュメントをご参照ください。
ご注意事項
手動でのインストールの場合、.NET Framework 4.5.2 を利用している環境であっても、.NET Framework 4.6 以上向けの更新プログラムを適用できてしまう動作となっています。また、逆に、.NET Framework 4.6 以上の環境に対して .NET Framework 4.5.2 向けの更新プログラムを適用できてしまうケースがあります。(*3)
このように誤ったバージョンの更新プログラムを適用してしまうと、.NET Framework のランタイム ライブラリ間のバージョンに不整合が生じ、以下のドキュメントで紹介されているような問題が発生する場合があります。
.NET Framework 4 以降の環境に異なるバージョンの .NET Framework 向けの更新プログラムを適用すると発生する問題について
https://support.microsoft.com/ja-jp/help/3122487
誤ったバージョンの更新プログラムを適用してしまった場合は、コントロールパネルの「インストールされた更新プログラムの一覧」から対象の更新プログラムをアンインストールし、正しい更新プログラムを適用しなおしてください。
対象の更新プログラムについては、以下の一覧から ".NET Framework" や "4.6" をキーワードに検索し、対象の OS に該当する KB のリンク先ページをご覧いただくなどしてご確認ください。
Software Update Services and Windows Server Update Services changes in content for 2017 Software Update Services and Windows Server Update Services changes in content for 2016 Software Update Services and Windows Server Update Services changes in content for 2015
(*3) 具体的には、Windows Server 2012、Windows 8.1、Windows Server 2012 R2 に対して、2017 年 9 月より前の更新プログラムを適用する場合が該当します。2017 年 9 月以降の更新プログラムでは、OS の機能と連携して不適切な更新プログラムのインストールをブロックする機能が追加されています。これより前の時点では、Windows Server 2012 においては .NET Framework の誤ったバージョンの手動インストールをブロックする機能が提供されておらず、OS の機能上の制限事項として、不適切な更新プログラムのインストールが許容されておりました。
更新プログラムの構成や Microsoft Update カタログの表示に分かりづらい面があり、手動で適用されているご利用者様にはご不便をおかけいたしますが、上記内容についてご承知おきくださいますようお願い申し上げます。