ニュース

「.NET 5.0」「.NET Core 2.1/3.1」が“Microsoft Update”経由で更新可能に

アップデートの管理がシンプルに

同社の公式ブログ

 米Microsoftは12月3日(現地時間)、Windows向けの「.NET 5.0」「.NET Core 2.1/3.1」の更新を今月から“Microsoft Update”経由でも配信すると発表した。Microsoft関連の更新プログラムを“Microsoft Update”でまとめて管理したい、更新を完全に自動化したいという顧客の要望に応えた格好だ。

 「.NET」「.NET Core」は、アップデートによりアプリが動かなくなる危険を懸念して、これまで“Microsoft Update”経由で配信されていなかった。このような問題は「.NET Framework」のバージョンアップ(v4.5からv4.8への移行など)でも実際に発生していたが、「.NET」「.NET Core」は機能変更を伴うメジャーバージョンやマイナーバージョンはサイドバイサイド(同じ環境に複数バージョンを同居させる)でインストールされるため、基本的に発生しない。

 ただし、「.NET Core 3.0」以降では複数バージョンのランタイムがストレージを占有・浪費するのを極力抑えるため、セキュリティ修正を含む月次の更新プログラムだけは古いバージョンを置き換える(インプレースインストール)。そのため、古いランタイムが削除されるとそれを前提にしていたアプリが動作しなくなのではと懸念するユーザーもいるかもしれないが、これは最新のパッチバージョンへ自動で切り替える仕組み(ランタイムロールフォワード)でカバーされているため、“Microsoft Update”経由でアップデートしてもトラブルは発生しないはずだ。

 それでもランタイムのアップデートで「.NET」アプリが起動しなくなるのが心配な場合は、SCDモデルを利用するという手がある。「.NET」「.NET Core」アプリにはシステムにインストールされたランタイムを利用する“Framework Dependent Deployment”(FDD)と、特定のバージョンのランタイムを含めた“Self-Contained Deployment”(SCD)の2つがあるが、“Microsoft Update”経由のアップデートで影響を受けるのはFDDの場合だけだ。SCDならば“Microsoft Update”経由で「.NET」「.NET Core」をアップデートしてもアプリが動作不能になることはない。ただし、アプリケーションの開発者が責任をもってアップデートを提供する必要がある。

 なお、“Microsoft Update”は“Windows Update”とは異なるので注意。「.NET」「.NET Core」は「.NET Framework」と異なり、Windows OSとは独立した製品だ。そのため、更新プログラムの詳細オプションで[Windows の更新時に他の Microsoft 製品の更新プログラムを受け取る]を有効にしていなければアップデートは配信されない(初期状態は無効)。

“Microsoft Update”は“Windows Update”とは異なるので注意

 また、他のMicrosoft製品のアップデートは受け取りたいが、「.NET」「.NET Core」のアップデートは拒否したいという要望に応え、アップデートをブロックする仕組みも提供される。特定のレジストリを編集すれば、メジャーバージョンごとにブロックの可否を設定できる。IT管理者であれば「Windows Server Update Service」(WSUS)でアップデートをコントロールしてもよい。

特定のレジストリを編集すれば、メジャーバージョンごとにブロックの可否を設定できる