.NET のバージョン管理の方法の概要

.NET ランタイムと .NET SDK では、新しい機能が追加される頻度が異なります。 一般には、ランタイムよりも SDK の方がより頻繁に更新されます。 この記事では、ランタイムと SDK のバージョン番号について説明します。

.NET では、毎年 11 月に新しいメジャー バージョンがリリースされます。 .NET 6 や .NET 8 などの偶数番号が付いたリリースは、長期的にサポートされます (LTS)。 奇数番号が付いたリリースは、次のメジャー リリースまでサポートされます。 .NET の最新リリースは .NET 6 です。

バージョン管理の詳細

.NET ランタイムでは、セマンティック バージョニングに従い、major.minor.patch アプローチを使用してバージョン管理を行っています。

ただし、.NET SDK は、セマンティック バージョニングには従っていません。 .NET SDK の方が速くリリースされ、そのバージョン番号では、それと連携しているランタイムとその SDK 自体のマイナーおよびパッチ リリースの両方が示されている必要があります。

.NET SDK のバージョン番号の 1 番目と 2 番目の位置は、一緒にリリースされる .NET ランタイム バージョンと一致します。 SDK の各バージョンでは、このランタイムまたはより低いバージョンに対するアプリケーションを作成できます。

SDK バージョン番号の 3 番目の位置には、マイナー番号とパッチ番号の両方が示されます。 マイナー バージョンには 100 が乗算されます。 最後の 2 桁はパッチの番号を示しています。 マイナー バージョン 1、パッチ バージョン 2 の場合は、102 と表現されます。 たとえば、ランタイムと SDK のバージョン番号の順番としては、次が可能です。

Change .NET ランタイム .NET SDK (*)
初期リリース 5.0.0 5.0.100
SDK パッチ 5.0.0 5.0.101
ランタイムおよび SDK パッチ 5.0.1 5.0.102
SDK 機能変更 5.0.1 5.0.200

注:

  • SDK において、ランタイムの機能更新プログラムの前に 10 の機能更新プログラムがある場合、バージョン番号は 1000 シリーズに展開されます。 バージョン 5.0.900 に続くのは、バージョン 5.0.1000 です。 このような状況が発生することは想定されていません。
  • 機能リリースなしで 99 のパッチ リリースは、発生しません。 リリースがこの数に近づくと、機能リリースが強制的に適用されます。

詳細については、dotnet/designs リポジトリにある初期の提案を参照してください。

セマンティック バージョン管理

.NET ランタイムは、セマンティック バージョニング (SemVer) にほぼ準拠しています。 バージョン管理の使用が採用され、バージョン番号のさまざまな部分を使用してどの程度のどのような種類の変更があったかが示されています。

MAJOR.MINOR.PATCH[-PRERELEASE-BUILDNUMBER]

省略可能な PRERELEASEBUILDNUMBER の部分はサポートされるリリースに含まれることはなく、ソース ターゲットからローカルでビルドされた夜間のビルドおよびサポートされていないプレビュー リリースにのみ存在します。

ランタイム バージョン番号の変更を理解する

  • MAJOR は年に 1 回インクリメントされ、次の値を含む場合があります。

    • 製品における重大な変更。または製品の新しい方向性。
    • API によって、破壊的変更が導入された。 互換性に影響する変更の受け入れには大きな制約があります。
    • 既存の依存関係の新しい MAJOR バージョンが採用された。

    メジャー リリースは年に 1 回行われ、偶数番号が付けられたバージョンは長期的にサポートされる (LTS) リリースです。 このバージョン管理スキームを使用した最初の LTS リリースは .NET 6 です。 LTS 以外の最新バージョンは .NET 5 です。

  • MINOR は次のときに増分されます。

    • パブリック API アクセス領域が追加された。
    • 新しい動作が追加された。
    • 既存の依存関係の新しい MINOR バージョンが採用された。
    • 新しい依存関係が導入された。
  • PATCH は次のときに増分されます。

    • バグの修正が行われた。
    • より新しいプラットフォームのサポートが追加された。
    • 既存の依存関係の新しい PATCH バージョンが採用された。
    • 前のケースのいずれかに一致しない他の変更。

複数の変更が存在する場合、個々の変更によって影響を受ける最高位置の要素が増分され、それに続く要素はゼロにリセットされます。 たとえば、MAJOR が増分されると、MINOR.PATCH はゼロにリセットされます。 MINOR が増分されると、PATCH はゼロにリセットされますが、MAJOR は変更されません。

ファイル名に含まれるバージョン番号

.NET 用にダウンロードされるファイルは、たとえば、dotnet-sdk-5.0.301-win10-x64.exe のようにバージョンを含んでいます。

プレビュー バージョン

プレビュー バージョンには、-preview.[number].[build] がバージョン番号に追加されます。 たとえば、6.0.0-preview.5.21302.13 のようにします。

サービスのバージョン

リリースされると、通常はリリース ブランチが毎日のビルドの生成を停止し、代わりにサービスのビルドの生成を開始します。 サービスのバージョンには、-servicing-[number] がバージョンに追加されます。 たとえば、5.0.1-servicing-006924 のようにします。

関連項目