こんにちは、Japan Developer Support Core チームの松井です。
サポート終了した製品については、お問い合わせを承ることができません。一方で、サポート終了した .NET バージョンの扱いについては多くのお問い合わせをいただいています。そこで今回は、サポートが終了した .NET バージョンの扱いについて、弊社へよく寄せられる質問とその回答および見解を整理しました。少しでも皆様の参考になれば幸いです。
なお、.NET Framework と .NET (旧 .NET Core) は別の製品であり、本記事では .NET の扱いについて整理します。
FAQ
Q1. サポート終了した .NET は直ちに使用できなくなりますか
A1. いいえ、サポート終了した .NET は直ちに使用できなくなるわけではありません。既にインストールされている .NET は引き続き利用可能です。ただし、セキュリティの観点からはサポート終了した .NET の使用は推奨されません。サポートされているバージョンへのアップグレードを強く推奨します。
Q2. サポート終了した .NET を使い続けるリスクは何ですか
A2. 一般的には次のようなリスクが高まると考えられます。
- セキュリティ更新プログラムが提供されず脆弱性が修正されないため、脆弱性が悪用される可能性がある
- 不具合修正や技術サポートを受けられず、問題が発生した際の解決が困難になる可能性がある
- 監査・コンプライアンス要件に抵触する可能性がある
Q3. .NET アプリケーションを実行していなくても、サポート終了した .NET がインストールされているだけでリスクがありますか
A3. .NET 自体は常駐するサービスやプロセスを持たないため、単にインストールされているだけで直ちにリスクが顕在化するわけではありません。ただし、サポートが終了した .NET はセキュリティ更新が提供されないため、既知・未知の脆弱性が修正されない状態となります。そのため、アプリケーションや依存関係を通じて意図せず使用された場合や、攻撃者が他の脆弱性と組み合わせて利用した場合にはリスクが顕在化する可能性があります。また、サポート終了済みコンポーネントが存在すること自体が、セキュリティ評価やコンプライアンスの観点で問題となる場合があります。
Q4. サポートされている .NET バージョンで見つかったセキュリティ問題や不具合が、サポート終了した .NET でも発生する可能性はありますか
A4. はい、可能性はあります。サポート終了した .NET はセキュリティ更新や不具合修正が提供されないため、サポート中の .NET で発見された脆弱性や不具合が、サポート終了したバージョンでも存在する可能性があります。ただし、サポート終了したバージョンは影響があるかどうかの検証や調査が原則として行われておらず、お問い合わせをいただいても対応を承ることができません。
Q5. どのバージョンの .NET がインストールされているか確認する方法はありますか
A5. いくつか方法があります。
dotnetコマンドで SDK とランタイムを確認する1
2
3dotnet --list-sdks
dotnet --list-runtimes
dotnet --infoインストール フォルダーの存在で確認する (
C:\Program Files\dotnet\,C:\Program Files (x86)\dotnet\)設定アプリの [アプリ] - [インストールされているアプリ] の一覧で確認する
Q6. .NET をアンインストールするとどのような影響がありますか
A6. .NET をアンインストールすると、アンインストールしたバージョンに依存するアプリケーションが実行できなくなる可能性があります。アンインストールする前に、アンインストール対象の .NET バージョンに依存するアプリケーションがないか確認してください。
原則として、別のメジャー バージョンや別系統のランタイムに依存するアプリケーションへの影響は限定的です。例えば、.NET 6 をアンインストールすると .NET 6 に依存するアプリケーションが実行できなくなる可能性がありますが、.NET 8 や .NET 10 に依存するアプリケーションへの影響は通常想定されません。ただし、実運用では個別事情があるため、事前検証を推奨します。
Q7. サポート終了した .NET に依存するアプリケーションを確認する方法はありますか
A7. 網羅的に確認する方法はありません。インストールされている重要なアプリケーションを中心にシステム要件からサポート終了した .NET の依存有無を確認し、不明な場合は各アプリケーションの開発元にお問い合わせて確認することを検討してください。なお、.NET ランタイムの使用状況を監査することは可能です。.NET アプリケーションでは coreclr.dll がロードされます。Visual C++ ランタイム バージョンの使用状況を監査する の手順と同様の方法で coreclr.dll のロード状況を監査し、ロードされたパスの coreclr.dll についてファイル バージョンを確認することで、サポート終了した .NET に依存するアプリケーションの存在を確認できます。あくまでも実行されているアプリケーションの監査となり、実行されていないアプリケーションも含めたすべてのアプリケーションの依存関係を網羅的に確認することはできませんのでご注意ください。
Q8. .NET のアンインストール方法を教えてください
A8. .NET ランタイムと SDK を削除する方法 を確認してください。
Q9. Visual Studio と共にインストールされた .NET をアンインストールすると、.NET 開発関係のワークロードやコンポーネントもアンインストールされてしまいます
A9. .NET Runtime や SDK が必須の依存関係となっている場合の想定された動作です。サポート終了した .NET のバージョンは Visual Studio を更新することで必須の依存関係から外れますので、Visual Studio を最新バージョンに更新した上でサポート終了した .NET をアンインストールしてください。なお、このとき新しいバージョンの .NET のインストールが必要となる場合がありますので、Visual Studio Installer で表示されるメッセージなどに沿って対応してください。開発環境をセキュアに保つために、.NET だけでなく Visual Studio も最新バージョンに更新していただくことを推奨します。
Q10. .NET のアップグレード方法を教えてください
A10. .NET は新しいメジャー バージョンをインストールしても、既存のバージョンを置き換えることはありません。そのため、新しいバージョンをインストールした上で .NET アプリケーションのターゲット バージョンを変更し、不要となったバージョンをアンインストールする必要があります。.NET のメジャー バージョン間では破壊的変更が行われる可能性があるため、.NET アプリケーションのターゲット バージョンを変更する際はアプリケーションの修正と動作確認が必要です。.NET アプリケーション側で必要な対応についてはアプリケーションの開発元にお問い合わせください。
Q11. .NET は Windows Update / Microsoft Update でメジャー バージョンのアップグレードやアンインストールが行われることはありますか
A11. いいえ、通常は .NET のメジャー バージョンのアップグレードやアンインストールが Windows Update / Microsoft Update によって行われることはありません。詳細は関連記事をご確認ください。(関連記事: Windows Update による .NET (旧 .NET Core) の自動更新について)
Q12. .NET のインストールやアンインストール、更新の際にコンピューターの再起動は必要ですか
A12. .NET に限らず、ソフトウェアのインストールやアンインストール、更新を行う際に置き換えが必要なファイルが使用中の場合は、再起動が必要になることがあります。インストーラーが再起動の必要性を検出した場合は、再起動を促すメッセージが表示されますので、その指示に従ってください。予め .NET に依存するアプリケーションを終了させておくことで再起動が必要となる可能性を軽減することはできますが、確実に再起動が不要になるわけではありませんので、再起動が必要となる可能性があることを考慮して作業の計画と実施を行ってください。
Q13. .NET のサポート ライフサイクルはどこで確認できますか
A13. .NET および .NET Core のサポート ポリシー を確認してください。
本ブログの内容は弊社の公式見解として保証されるものではなく、開発・運用時の参考情報としてご活用いただくことを目的としています。もし公式な見解が必要な場合は、弊社ドキュメント (https://learn.microsoft.com や https://support.microsoft.com) をご参照いただくか、もしくは私共サポートまでお問い合わせください。