.NET 8と.NET 9は同じ日にサポート終了|.NET 10への移行手順・所要期間と、間に合わない場合の選択肢【2026年版】
.NET 8と.NET 9のサポートは、どちらも2026年11月10日に終了します。 .NET 8は3年間サポートされるLTS(長期サポート)版、.NET 9はSTS(標準サポート)版で、種類は違いますが終了日は同じです。この日を過ぎると、脆弱性が見つかってもセキュリティ更新は提供されません。
「.NET 9は新しいから、まだ先だろう」と考えていたなら注意が必要です。.NET 9を選んだシステムも、.NET 8と同時に期限を迎えます。
本記事では、.NET 8・.NET 9のサポート期限と終了後に起きることを整理したうえで、移行先の.NET 10への手順と所要期間、11月10日に間に合わない場合の優先順位の付け方を解説します。混同されやすい「.NET Framework」の期限もあわせて確認します。
目次
想定読者
本記事は、次のような方を想定しています。
- 社内の業務システムやWebアプリを.NET 8・.NET 9で動かしている情報システム部門の方
- 開発を外部に委託しており、自社システムがどの.NETで動いているか把握できていない方
- AWS LambdaやコンテナでC#のアプリケーションを運用している方
- 「.NET Framework 4.8も同時に終わるのか」が気になっている方
.NET 8・.NET 9のサポート終了日は2026年11月10日
Microsoftの公式サポートポリシーでは、.NET 8と.NET 9の終了日はいずれも2026年11月10日です。現在サポートされているのは.NET 8・.NET 9・.NET 10の3つで、11月10日以降は.NET 10だけが残ります。
バージョン別サポート期限一覧
| バージョン | 種類 | リリース日 | サポート終了日 |
|---|---|---|---|
| .NET 10 | LTS | 2025年11月11日 | 2028年11月14日 |
| .NET 9 | STS | 2024年11月12日 | 2026年11月10日 |
| .NET 8 | LTS | 2023年11月14日 | 2026年11月10日 |
| .NET 7 | STS | 2022年11月8日 | 2024年5月14日(終了済み) |
| .NET 6 | LTS | 2021年11月8日 | 2024年11月12日(終了済み) |
出典:Microsoft「.NET および .NET Core の公式サポート ポリシー」(2026年9月時点)
.NET 6や.NET 7で止まっているシステムは、すでにサポート外です。今回の期限と同時に棚卸しの対象に含めてください。
なぜ.NET 9は.NET 8と同じ日に終わるのか
.NETは毎年11月に新しいバージョンが出て、LTSとSTSが交互にリリースされます。LTSは3年間、STSは2年間(24か月)サポートされます。
- .NET 8(LTS):2023年11月リリース → 3年後の2026年11月に終了
- .NET 9(STS):2024年11月リリース → 2年後の2026年11月に終了
1年遅れて出た.NET 9は、サポート期間が1年短いため、終了日が.NET 8と重なります。以前はSTSのサポート期間が18か月だったため、古い情報では「.NET 9は2026年5月に終了」と書かれていることがあります。現在の公式ポリシーでは24か月です。
「.NET Framework」は別の製品で、期限も違う
名前が似ていますが、Windows専用の「.NET Framework」は今回の期限とは関係ありません。.NET Frameworkは、Windowsの一部として扱われるコンポーネントのライフサイクルに従います。
| バージョン | サポート終了日 |
|---|---|
| .NET Framework 4.8.1 / 4.8 / 4.7.x | インストール先のWindowsのサポート期間に連動 |
| .NET Framework 4.6.2 | 2027年1月12日 |
| .NET Framework 3.5 SP1 | 2029年1月9日 |
出典:Microsoft Learn「Microsoft .NET Framework – Microsoft Lifecycle」
注意したいのは.NET Framework 4.6.2です。2027年1月12日はWindows Server 2016のサポート終了日と同じで、.NET 8・9の期限から2か月後に次の期限が来ます。古い業務システムが4.6.2を指定している場合は、今回の棚卸しで一緒に拾っておくと手戻りが減ります。
サポート終了後に起きること
11月10日を過ぎても、.NET 8・.NET 9で作ったアプリケーションはそのまま動き続けます。画面上は何も変わらないまま、次のような守りが外れていきます。
脆弱性が見つかっても修正されない
.NETの修正プログラムは毎月、セキュリティ修正を含む場合は第2火曜日に提供されます。サポート終了後は、ASP.NET Coreやランタイムに脆弱性が見つかっても、.NET 8・9向けの修正は出ません。インターネットに公開しているWebアプリやAPIほど、影響を受けやすくなります。
監査や取引先のセキュリティ要件を満たせなくなる
取引先から届くセキュリティチェックシートや、社内監査の項目には「サポート期間内のソフトウェアを使用しているか」がほぼ必ず含まれます。サポート切れのランタイムが残っていると、個別に説明や例外申請が必要になります。
クラウドの実行環境で更新ができなくなる
クラウド側のランタイムにも期限があります。AWS Lambdaの場合、公式ドキュメントに次の日程が掲載されています。
| Lambdaランタイム | 非推奨化 | 関数の新規作成ブロック | 関数の更新ブロック |
|---|---|---|---|
| .NET 8(dotnet8) | 2026年11月10日 | 2027年2月1日 | 2027年3月3日 |
| .NET 9(dotnet9・コンテナのみ) | 2026年11月10日 | 予定なし | 予定なし |
| .NET 10(dotnet10) | 2028年11月14日 | 2028年12月14日 | 2029年1月15日 |
出典:AWS Lambda Developer Guide「Lambda runtimes」(2026年9月時点)
非推奨化の後も関数は動き続けますが、2027年3月3日以降は既存関数のコードや設定の更新ができなくなります。障害時の修正すらデプロイできない状態を避けるため、それまでにdotnet10へ切り替える必要があります。
ビルド時に警告で気づける
プロジェクトにCheckSdkVulnerabilitiesというMSBuildプロパティをtrueで設定すると、サポート期間の切れたSDKでビルドしたときに警告(NETSDK1239)が出るようになります。CIのビルドに組み込んでおけば、期限切れの見落としを防げます。
<PropertyGroup>
<CheckSdkVulnerabilities>true</CheckSdkVulnerabilities>
</PropertyGroup>
移行先は.NET 10が基本|.NET 11を待たない理由
移行先の第一候補は.NET 10です。2025年11月にリリースされたLTS版で、2028年11月14日までサポートされます。
2026年11月には.NET 11がリリースされる予定ですが、こちらはSTS版です。業務システムの移行先としては次の理由から.NET 10を勧めます。
- 期限までに間に合わない:.NET 11のリリースは.NET 8・9の終了と同じ11月で、リリース直後に移行を終えるのは現実的ではありません
- 周辺ライブラリの対応を待つ必要がない:.NET 10はリリースから約1年たち、主要なNuGetパッケージやクラウドのランタイムが対応済みです
- 次のLTSへの移行計画が立てやすい:.NET 10の次のLTSは2027年11月の.NET 12の予定です。2028年11月までに.NET 12へ上げる、という2年単位の計画が組めます
見落としやすいのは開発環境の更新
.NET 10を対象(net10.0)にしたビルドは、Visual Studio 2026が正式な対応環境です。Visual Studio 2022では、.NET 10のSDKを入れてもnet10.0を対象にした開発は正式にサポートされません。
開発を外部に委託している場合は、委託先の開発環境が対応済みかを確認してください。社内で開発している場合は、Visual Studioのライセンス更新や端末へのインストール作業も移行計画に含めます。
.NET 8・9の移行計画や、自社システムがどの.NETで動いているかの棚卸しでお困りでしたら、c3indexにご相談ください。
.NET 8・9から.NET 10への移行手順
.NET 8・9から.NET 10への移行は、同じ.NETの中でのバージョン更新です。.NET Frameworkからの移行と比べると、書き直しの量はずっと少なく済みます。ただし「プロジェクトファイルの数字を変えるだけ」で終わるとは限りません。次の順番で進めます。
ステップ1:対象システムを棚卸しする
まず、社内のどのシステムがどの.NETで動いているかを一覧にします。ソースコードがある場合は、プロジェクトファイル(.csproj)のTargetFrameworkを確認すれば分かります。
<TargetFramework>net8.0</TargetFramework>
サーバー側では、dotnet --list-runtimesコマンドでインストール済みのランタイムを確認できます。ソースコードが手元になく、開発会社に確認しないと分からないシステムもこの段階で洗い出します。
ステップ2:依存パッケージの対応状況を確認する
NuGetで取り込んでいるライブラリが.NET 10に対応しているかを確認します。社内で作った共通ライブラリや、更新が止まっているサードパーティ製品が移行のボトルネックになりやすいポイントです。
ステップ3:開発環境とSDKを更新する
Visual Studio 2026と.NET 10 SDKを用意します。global.jsonでSDKのバージョンを固定しているプロジェクトは、その指定も更新します。CIやビルドサーバーのSDKも忘れずに入れ替えます。
ステップ4:対象フレームワークを変更してビルドする
TargetFrameworkをnet10.0に変更し、パッケージを更新してビルドします。Microsoftは各バージョンの「破壊的変更」の一覧を公開しているので、ビルドエラーや警告が出た箇所と照らし合わせて修正します。.NET 8から上げる場合は、.NET 9と.NET 10の両方の変更点を確認します。
ステップ5:テストと本番環境の更新
単体テストと結合テストを通したうえで、本番環境のランタイムを更新します。実行環境ごとの作業は次のとおりです。
- Windowsサーバー(IIS):.NET 10のHosting Bundleをインストールする
- コンテナ:ベースイメージを.NET 10のもの(例:
mcr.microsoft.com/dotnet/aspnet:10.0)に変更する - AWS Lambda:関数のランタイム設定を
dotnet10に変更する
いきなり全台を切り替えず、一部の環境で先行して動かし、問題がないことを確かめてから広げるのが安全です。
移行にかかる期間の目安
所要期間は、システムの数と依存関係の複雑さでほぼ決まります。c3indexがシステムの保守・移行で見てきた範囲での目安は次のとおりです。
| 規模 | 状況の例 | 期間の目安 |
|---|---|---|
| 小規模 | 単一のWebアプリ・API、外部ライブラリが少ない | 2〜4週間 |
| 中規模 | 複数のアプリが共通ライブラリを共有している | 1〜3か月 |
| 大規模 | 数十のシステム、更新の止まった製品や独自ライブラリを含む | 3〜6か月 |
※テスト工程の厚さや、委託先の体制によって前後します。
2026年9月末の時点で残りは約6週間です。中規模以上のシステムを抱えている場合、全システムを11月10日までに移行し終えるのは難しいと考えたほうが現実的です。
11月10日に間に合わない場合の選択肢
SQL ServerやWindows Serverと違い、.NET 8・.NET 9には有償の延長セキュリティ更新(ESU)が用意されていません。期限を過ぎたら、修正は自分たちで守るしかありません。間に合わないと分かった時点で、次の順に手を打ちます。
外部に公開しているシステムから移行する
限られた期間で全部を移すのは無理でも、順番は付けられます。インターネットに公開しているWebアプリやAPI、取引先とデータをやり取りするシステムは、脆弱性を突かれたときの影響が大きいため最優先です。社内ネットワークからしか使わない帳票出力などは後回しにできます。
移行までの間はリスクを下げる運用で補う
移行が期限後にずれ込むシステムは、その間の守りを厚くします。
- WAF(Webアプリケーションファイアウォール)を前段に置き、既知の攻撃パターンを遮断する
- 社内専用のシステムは、外部から届かないネットワークに置いていることを再確認する
- ログ監視を強化し、不審なアクセスに早く気づける状態にする
いずれも時間を稼ぐための手段で、移行の代わりにはなりません。移行完了の目標日を決めたうえで実施します。
Windows Server 2016と.NET Framework 4.6.2の期限も重なる
2027年1月12日には、Windows Server 2016と.NET Framework 4.6.2のサポートも終了します。.NET 8・9のアプリをWindows Server 2016上で動かしているなら、2か月後にOSの期限も来ます。.NETだけを先に更新して、2か月後にOSのために同じサーバーを再びテストする二度手間になりかねません。OS移行とまとめて計画できないかを最初に検討してください。
よくある質問
Q. 11月10日を過ぎると、.NET 8で作ったアプリは動かなくなりますか?
A. 動かなくなることはありません。インストール済みのランタイムでそのまま動き続けます。ただし、以後に見つかった脆弱性は修正されず、Microsoftのサポートも受けられません。AWS Lambdaのようなクラウドの実行環境では、一定期間後に関数の作成・更新ができなくなります。
Q. .NET 9を使っています。.NET 8より新しいので、もう少し使えますか?
A. 使えません。.NET 9はSTS(2年サポート)版のため、1年早くリリースされたLTS版の.NET 8と同じ2026年11月10日に終了します。
Q. .NET Framework 4.8も11月で終わりますか?
A. 終わりません。.NET Framework 4.8と4.8.1は、インストールされているWindowsのサポート期間に連動します。ただし.NET Framework 4.6.2は2027年1月12日に終了するため、該当するシステムがあれば移行の準備が必要です。
Q. AWS Lambdaで.NET 8の関数を動かしています。いつまでに何をすればよいですか?
A. dotnet8ランタイムは2026年11月10日に非推奨となり、2027年2月1日に新規作成、3月3日に既存関数の更新がブロックされます。3月3日までにランタイムをdotnet10へ切り替え、動作確認を済ませてください。
Q. 次の.NET 11が出るまで待ってから移行したほうがよいですか?
A. 待たずに.NET 10へ移行することを勧めます。.NET 11は2026年11月リリース予定のSTS版で、.NET 8・9の期限には間に合いません。LTSの.NET 10なら2028年11月までサポートされます。
まとめ
本記事のポイントをまとめます。
- .NET 8(LTS)と.NET 9(STS)のサポートは、どちらも2026年11月10日に終了する
- .NET Framework 4.8・4.8.1はWindowsに連動するが、4.6.2は2027年1月12日に終了する
- 移行先は2028年11月までサポートされるLTSの.NET 10が基本で、開発環境はVisual Studio 2026が必要
- 移行期間の目安は小規模で2〜4週間、大規模では3〜6か月かかる
- 間に合わない場合は外部公開システムから優先し、Windows Server 2016の期限(2027年1月)とまとめて計画する
期限まで残りわずかでも、棚卸しと優先順位付けは今日から始められます。どこから手を付けるか迷ったときは、c3indexにご相談ください。
.NETの移行・システム保守のご相談はc3indexへ
c3indexは、業務システムの開発・保守からAWSへの移行までを一貫して支援するシステム会社です。「自社のシステムがどの.NETで動いているか分からない」「委託先が対応してくれない」といった段階からご相談いただけます。まずはお気軽にお問い合わせください。