Skip to content

MS_DotNetCoreUpgrade

nishi_74322014 edited this page Aug 31, 2026 · 1 revision

.NET Coreバージョンアップ

概要

補足(.NET Core のバージョンアップは「サポート期限で回る」):
.NET Framework がバイナリレベルの後方互換を重視し、
OS のライフサイクルに従っていたのに対し、
.NET Core / .NET はリリース単位でサポート期間が定義される

  • 偶数バージョン = LTS(3 年)、奇数バージョン = STS(18 か月)
  • 期限が来るとセキュリティ修正も止まる

つまり .NET Framework 時代のように「動いているから触らない」が成立せず、
定期的なバージョンアップが運用作業として組み込まれる
本ページが各バージョン間の差分を丹念に記録しているのは、この事情による。

詳細

.NET Standard

2.0

起点

  • ASP.NET 系の API が入って来ている。

    • 旧 ASP.NET 系の API は入って来ていない。
    • が、ASP.NET Core 関連が入って来ている。
  • と言う事で、この段階で、
    .NET Core がメインストリームになると予想できた。

→ 2.1

  • API 追加ということで、既存コードに、ほぼ影響なし。

  • ポイントは、.NET Core 2.1 ではなく、3.0 に対応していると言う事。

  • .NET 5 以降

    • 新規採用は非推奨。
    • NuGet でのサポート状況を要確認。
  • 参考

補足(.NET Standard は役割を終えた): .NET Standard は
「.NET Framework と .NET Core の両方から参照できるライブラリ」を作るための仕組みだった。
.NET 5 で実行基盤が 1 本化されたため、現在は
net8.0 などのターゲット フレームワークを直接指定するのが標準で、
.NET Standard を新規に採用する理由は
.NET Framework 向けにも同じライブラリを配りたい場合に限られる。
本ページの「新規採用は非推奨」という記述はそのとおりである。

.NET Core

API 移植、追加が続いている。

2.0

起点

→ 2.1

  • 既存コードに、ほぼ影響なし。
  • 参考

→ 2.2

  • 既存コードに、ほぼ影響なし。
  • 参考

→ 3.0

→ 3.1

(元ページ未記載)

→ 5.0

(元ページ未記載)

補足(3.1 → 5.0 の位置づけ): 5.0 で
製品名から "Core" が外れ、.NET Framework との系統が統合された
(4.x との混同を避けるため 4 を飛ばして 5 になった)。
コードの移行という意味では TargetFramework
netcoreapp3.1net5.0 に変えるだけで済むことが多く、
3.0 のときのような大きな破壊的変更は少ない。
ただし **5.0 は STS(短期サポート)**であり、
実運用では 6.0(LTS)まで進めるのが前提になる。

6.0

8.0

10.0

ASP.NET Core

  • API 移植、追加が続いている。

  • フレームワークの変更が多いので、
    フレームワークの DI をしている Startup.cs の変更が多い印象。

2.0

起点

→ 2.1

→ 2.2

→ 3.0

→ 3.1

…。

→ 5.0

…。

補足(6.0 以降の最大の変更は Startup.cs の廃止): 本ページが
Startup.cs の変更が多い印象」と繰り返し指摘しているとおり、
ASP.NET Core のバージョンアップ作業はここに集中する。
.NET 6 では、その Startup.cs 自体が既定のテンプレートから消え
Minimal Hosting(Program.cs 1 ファイルに WebApplicationBuilder で集約)
に置き換わった。

  • 既存の Startup.cs 方式は引き続き動作するので、
    バージョンアップ時に必ず書き換える必要はない。
  • ただし、新しいテンプレートやドキュメントは Minimal Hosting 前提で書かれているため、
    本ページが推奨する「新規のプロジェクト・テンプレートから移植」という手順を採る場合は、
    この形式変更ごと取り込むことになる点に注意。

6.0

8.0

10.0

npmパッケージ

ASP.NET のビルドシステムに npm を使用している場合。

バージョンアップ

セキュリティ監査

移行メモ: 元ページでは上記 2 つの見出しに同一のアンカー ID が
重複して振られていた(PukiWiki 側の入力ミスと思われる)。
Markdown では見出しからアンカーが自動生成されるため、影響はない。

参考

.NET Standard

→ 2.1

Microsoft Docs(.NET Standard)

.NET Core

→ 2.1

→ 2.2

…。

→ 3.0

Microsoft Docs(.NET Core)

ASP.NET Core

→ 2.1

→ 2.2

→ 3.0

移行メモ(正誤): 元ページの IHostingEnvironment に関する Stack Overflow の
引用元リンクのうち、aspnet/AspNetCore の Issue #7749 を指すはずの URL が
別サイト(aspnet-core.clock-up.jp)を指していたため、
当該 Issue の URL に修正した。

→ 3.1

→ 5.0

(元ページ未記載)

6.0

8.0

10.0

Microsoft Docs(ASP.NET Core)

.NETバージョンアップ

OSSC > 開発基盤部会 Blog

Visual Studioや.NETのバージョンアップの度に苦しむ

「Open棟梁」を.NET Core 3.0 から、3.1 へアップグレードしてみる。

https://www.osscons.jp/jov00r1c7-537/


Tags: 移行, .NET開発

NetDevInfraWiki

マイクロソフト系技術情報 Wiki
Open 棟梁 Wiki

(未着手)

開発基盤部会 Wiki

移行管理: DONETODO

Clone this wiki locally