.NET Coreのバージョンを同期させることは、ビルドエラーやデプロイの失敗を回避する鍵となります。マシンにインストールされているものだけでなく、プロジェクトファイル、ランタイム環境、CI/CDパイプラインもすべて、スムーズに動作するために互換性のあるバージョンである必要があります。
SDK またはランタイム間のわずかな不一致でも、開発中にエラーや予期しない動作が発生する可能性があります。
環境によってデフォルトのバージョンが異なる場合がよくあります。そして、明示的に管理していない限り、何か問題が発生するまで、その違いに気付かない可能性があります。
この記事では、現在の.NET Coreのバージョンを確認し、コマンドを使用し、バージョンの競合を回避するための環境を設定する方法を紹介します。
TL; DR: .NET Core の最新バージョンを知ることは重要ですが、それをあらゆる環境で管理することで、ビルドが機能し続けるようになります。
-
2025年半ば現在、最新の安定リリースは.NET 9.0.9 (STS) と .NET 8.0.20 (LTS) です。サポート対象外のバージョン(.NET 5 や 3.1 など)をまだご利用の場合は、アップグレードをお勧めします。
-
サポートされていないバージョン (.NET 5 または 3.1 など) を使用している場合は、アップグレードしてください。
-
開発、CI/CD、本番環境を調整して、バージョンの不一致によるビルドの失敗を防ぎます。
-
バージョン管理とアップグレード パスを習得すると、エラーを防ぎ、展開を加速できます。
開発者が.NET Coreのバージョンについて誤解していること
インストールされているSDKのバージョンを知るだけでは必ずしも十分ではありません。.NETは、それぞれ独自のバージョンを持つ複数のSDK、ランタイム、プロジェクトターゲットフレームワークを組み合わせて使用します。また、マシンで実行されるものが、必ずしもプロジェクトで想定されているものと一致するとは限りません。
その結果、ビルドが中断され、デプロイメントが失敗し、バージョンを確認するコマンドで実際に使用されているものが表示されないことがあります。
バージョンの競合が開発者をいまだに不意打ちする理由はいくつかあります。
- プロジェクトでは、インストールされているバージョンとは異なるバージョンをターゲットにしている可能性があります。
- ランタイムと SDK には別々のバージョン管理があり、システムに一方だけが存在する可能性があります。
- global.json を使用すると、プロジェクトを古い SDK に自動的に固定できます。
- CI または本番環境では、間違ったランタイムがデフォルトでプルされる可能性があります。
- ロールフォワード動作により、ビルド時または実行時に選択された SDK またはランタイムが変更される可能性があります。
これを管理するには、何がインストールされているか、プロジェクトで何が期待されているか、.NET CLI がそれをどのように解決するかを理解する必要があります。
まず、システムで実際に使用できる SDK とランタイムを確認することから始めましょう。
.NET Core 最新バージョンの概要
.NET の最新の安定リリース (旧称 .NET Core 最新バージョン) は、2024 年 11 月 12 日にリリースされた .NET 9 です。これは、LTS ではなく、Standard Term Support (STS) バージョンに分類されます。
.NET 10 は現在リリース候補 (RC) ステータスであり、まだ実稼働環境での使用は推奨されていません。
最近のバージョンの概要は次のとおりです。
| | 最新のリリース | 発売日 | サポートタイプ | サポート終了 |
|---|
| .NET 10.0 (RC-1) | 10.0.0-rc-1 | 2025 年 9 月 09 日 | LTS | TBD |
| .NET 9 | 9.0.9 | 2025 年 9 月 09 日 | STS | 2026 年 11 月 10 日 |
| .NET 8 | 8.0.20 | 2025 年 9 月 09 日 | LTS | 2026 年 11 月 10 日 |
| .NET 7 | 7.0.20 | 2024年5月28日 | サポート対象外 | 2024 年 5 月 14 日 |
| .NET 6 | 6.0.36 | 2024年11月12日 | サポート対象外 | 2024 年 11 月 12 日 |
| .NET 5 | 5.0.17 | 2022 年 5 月 10 日 | サポート対象外 | 2022 年 5 月 10 日 |
| .NET コア 3.1 | 3.1.32 | 2022 年 12 月 13 日 | サポート対象外 | 2022 年 12 月 13 日 |
| .NET コア 3.0 | 3.0.3 | 2020 年 2 月 18 日 | サポート対象外 | 2020 年 3 月 3 日 |
| .NET コア 2.2 | 2.2.8 | 2019 年 11 月 19 日 | サポート対象外 | 2019 年 12 月 23 日 |
| .NET コア 2.1 | 2.1.30 | 2021 年 8 月 19 日 | サポート対象外 | 2021 年 8 月 21 日 |
| .NET コア 2.0 | 2.0.9 | 10年2018月XNUMX日 | サポート対象外 | 2018 年 10 月 1 日 |
| .NET コア 1.1 | 1.1.13 | 2019 年 5 月 14 日 | サポート対象外 | 2019 年 6 月 27 日 |
| .NET コア 1.0 | 1.0.16 | 2019 年 5 月 14 日 | サポート対象外 | 2019 年 6 月 27 日 |
バージョンとダウンロードオプションの詳細については、 公式.NETダウンロードページ.
.NET Coreの進化
.NET Coreは、.NET Frameworkに代わるクロスプラットフォームのオープンソースとして2016年に初めて導入されました。開発者はWindows、macOS、Linux上でアプリを構築・実行できるようになり、最新のクラウドネイティブおよびコンテナ開発の基盤を築きました。
.NET 5以降、Microsoftはブランド名を「.NET」に統一し、「Core」というサフィックスを削除しました。この変更にもかかわらず、エコシステムは、現在サポートが終了しているにもかかわらず、レガシープロジェクトで依然としてよく使用されている.NET Core 3.1などの古いバージョンで構築されたアプリを引き続きサポートしています。
開発者は、古いプロジェクトを新しい SDK で実行しようとしたとき、またはその逆のときに、問題に遭遇することがよくあります。
具体的な例を挙げますと、以下の通りです。
- .NET Core 2.2 用にビルドされたプロジェクトの実行中に .NET Core 3.1 をインストールすると、SDK エラーが発生する可能性があります。
- 適切な SDK がインストールされていない場合、CLI は「指定された SDK 'Microsoft.NET.Sdk' が見つかりませんでした」などのメッセージをスローする場合があります。
そのため、次の点が重要になります。
- インストールされているSDKを確認するには、dotnet –list-sdksを使用します。
- global.json ファイルを使用して SDK をピン留めし、ローカル環境と CI 環境間で一貫した動作を維持します。
.NET Core がどのように進化し、SDK の互換性がなぜ重要なのかを理解すると、特にエンタープライズ環境や DevOps 環境において、バージョンの不一致のデバッグにかかる時間を短縮できます。
.NET Core のバージョン管理スキーム
.NET のバージョン管理は、各リリースにおける変更の範囲と性質を明確に伝えるために設計された、構造化された予測可能なモデルに基づいています。これは、エンタープライズ環境、CI/CD パイプライン、そして共同開発チームにおいて特に役立ちます。
メジャー、マイナー、パッチの概要
- メジャーバージョン 毎年増加します。これは、製品の主要な変更、新機能、そして場合によっては互換性を破る変更を通知します。偶数番号のメジャーバージョン(例:.NET 6、.NET 8)はLTS、奇数番号のメジャーバージョン(例:.NET 7、.NET 9)はSTSです。
- マイナーバージョン 機能の追加または非破壊的な変更を示します。多くの場合、新しい依存関係バージョンに関連付けられています。
- パッチバージョン メンテナンス更新、セキュリティ パッチ、および API サーフェスに影響を与えない小さな修正のために予約されています。
.NET ランタイムは、次の形式を使用して、セマンティック バージョン管理 (SemVer) に準拠しています。
MAJOR.MINOR.PATCH[-PRERELEASE-BUILDNUMBER]
これは、NuGet パッケージのバージョン管理方法にも反映されています。この構造を理解することで、組織はアップグレードを計画し、安定性を評価し、バージョン間の移行に必要な労力を予測するのに役立ちます。
LTS と STS: 違いは何ですか?
.NET は2つのサポートモデルを採用しています。これらのモデルにより、開発者は長期的な安定性とイノベーションへの迅速なアクセスのどちらかを選択できます。
1) 長期サポート(LTS) LTS(長期サポート)バージョンは、信頼性、安定性、長期メンテナンスが優先される環境向けに設計されています。これらのバージョンには以下の特徴があります。
- 2年ごとにリリースされます
- パッチとセキュリティアップデートを含む3年間のサポートを受ける
- 偶数バージョンを使用する(例:.NET 6、.NET 8)
- エンタープライズ、規制産業、長期実行アプリケーションに最適です
LTS の主な利点は次のとおりです。
- 安定性: リリース後の変更は最小限
- 拡張メンテナンス: 3年間のサポート
- 生産準備完了: ミッションクリティカルなアプリケーションに最適
2) 標準期間サポート(STS)
STS(標準期間サポート)バージョンは、より速い開発サイクルとイノベーションを実現することを目的としています。これらのバージョンには以下の特徴があります。
- LTS サイクルの間にリリースされます (.NET 5、.NET 7、.NET 9 などの奇数サイクル)
- 18ヶ月のサポートを受ける
- 高度な機能とパフォーマンス強化を優先する
STS の主な利点は次のとおりです。
- 最新機能へのアクセス: 新しい機能を最初に入手
- 頻繁な更新: マイナーな修正とパフォーマンスの向上で最新の状態を維持
アジリティ: 急速に進化する最新のアプリに最適
おすすめ
LTS 企業向けおよび本番環境向けのバージョン。 STS 高度な機能が必要で、頻繁なアップグレードを実行できる場合のみ。
いつアップグレードすべきでしょうか?
次の場合はアップグレードしてください:
- 現在のバージョンのサポートは終了しました
- 新しいOS/プラットフォームのサポート、API、パフォーマンスの向上が必要です
- アプリをクラウド、コンテナ、CI/CDパイプラインに移行している
ステップバイステップ:.NET Core の最新バージョンへのアップグレード方法
新しい .NET バージョンへのアップグレードには、開発ツールからデプロイメント環境に至るまで、複数のステップが含まれます。各フェーズを効果的に処理する方法をご紹介します。
ステップ1.開発環境を更新する
最初のステップは、開発環境が最新の.NET SDKに対応しているかどうかを確認することです。これには、SDK、CLIツールのインストール、バージョンの整合性の確認が含まれます。
- インストーラをダウンロードする: 訪問 .NET ダウンロード ページ OS に適した SDK を選択してください。
- インストーラを実行します。: 画面上のセットアップに従ってインストールを完了します。
- パッケージマネージャーを使用する(オプション):
- MacOSの: brew install –cask dotnet-sdk
- Ubuntuの: sudo apt install dotnet-sdk-8.0
- Visual Studio ユーザー: Visual Studio を最新バージョンにアップグレードしてください。最新の SDK バージョンが自動的に含まれます。
- インストールを確認する:
dotnet --list-sdks
# to check installed runtimes:
dotnet --list-runtimes
ステップ2. プロジェクトのターゲットフレームワークを変更し、ソースコードをアップグレードする
開発環境がセットアップされたら、新しい .NET バージョンをターゲットにするようにプロジェクト ファイルをアップグレードします。
- プロジェクト ファイルを開きます。 プロジェクト ファイル (例: .csproj、.vbproj、.fsproj) を見つけて開きます。
- ターゲット フレームワークを更新します。 変更するプロパティを希望のバージョンに変更します。例:
<TargetFramework>net6.0</TargetFramework>
になります:
<TargetFramework>net8.0</TargetFramework>
- アップグレード アシスタントを使用する (オプション): Microsoft の .NET アップグレード アシスタントを使用すると、この変更を自動化し、互換性の問題を解決できます。
- プロジェクトをビルドします。 更新された SDK を使用して再構築します。
- ワークロードを復元する: プロジェクトで追加のワークロードを使用する場合は、次のコマンドで復元します。
ステップ3. CI/CD構成を変更する
次に、CIパイプラインが新しい.NET SDKを使用するように設定されているかどうかを確認します。これにより、自動ビルドが更新された開発環境と整合性を保つことができます。
- 設定ファイルを変更します。 アップグレードしたターゲットに合わせて、CI パイプライン構成ファイル (GitHub Actions、Azure Pipelines など) 内の .NET SDK バージョンを更新します。
- CI パイプラインを実行します。 ビルド パイプラインを実行して、新しい SDK バージョンを使用してすべてのビルドおよびテスト ステップが成功することを確認します。
GitHub Actions の設定例を次に示します。
- name: Setup .NET SDK
uses: actions/setup-dotnet@v3
with:
dotnet-version: 8.0.x
注意: Azure Pipelines またはその他の CI サービスでも同様にバージョンを更新します。
ステップ4. ホスティングランタイムを更新する
次に、ホスティング環境を新しい.NETバージョンに対応させるようにアップデートします。この手順により、本番環境でアップグレード後のアプリケーションが確実に実行できるかどうかを確認できます。手順は以下のとおりです。
- 新しい .NET ランタイムをインストールします。 サーバーまたはコンテナイメージに最新の.NETランタイムが含まれていることを確認してください。環境変数、デプロイスクリプト、またはDockerfilesの更新が必要になる場合があります。
- 公式コンテナイメージを使用する: コンテナ化されたアプリの場合は、次のようにベースイメージを更新します。
FROM mcr.microsoft.com/dotnet/aspnet:8.0
- ホスティングの準備状況を確認する: 次を使用してランタイムが存在することを確認します。
- アプリケーションをデプロイします。 更新されたアプリをホスティング環境にプッシュし、互換性の問題なく起動することを確認します。
プロジェクトが使用しているSDKを確認する方法
プロジェクトがどの SDK を使用しているかを理解することは、スムーズなビルド、信頼性の高いデプロイメント、チームや環境間での一貫した動作を実現するために不可欠です。
現在のSDKだけでは、プロジェクトが期待するバージョンと一致しない限り役に立ちません。そのため、バージョンのターゲット設定をプロジェクトのソースと構造まで遡って確認する必要があります。
これを行うには、いくつかのオプションがあります。
- Visual Studio などの IDE を使用している場合は、プロジェクト設定をチェックして、対象の .NET Core SDK バージョンを確認してください。
- C#プロジェクトでは、.csprojファイルはアプリのDNAのような役割を果たします。アプリの構築方法に関するメタデータも含まれます。
- より詳細な情報を得るには、msbuild /blコマンドを使用してください。このコマンドはmsbuild.binlogファイルを作成し、 Microsoft ビルド ログ ビューアこのファイルは、ビルド プロセス中に使用される NETCoreSdkVersion プロパティを明らかにします。
プロジェクトに記載されているSDKバージョンがインストールされていない場合は、 公式.NETダウンロードページ 正しいものをインストールしてください。
プロの洞察: 厳密なバージョン管理により、特に複数のサービスやチームの引き継ぎがある複雑な環境において、トラブルシューティングの高速化、DevOps 自動化の明確化、リリースの障害の低減が実現します。
互換性を確保し、面倒なビルド エラーを回避するには、プロジェクトがどの SDK バージョンをターゲットにしているか、またそれがローカル環境、CI/CD システム、ホスティング プラットフォームにインストールされているかどうかを把握しておく必要があります。
オプション1: .csprojファイルを検査する
プロジェクトの.csprojファイルを開いて、宣言。
<TargetFramework>net8.0</TargetFramework>
これにより、アプリケーションが期待するランタイムと SDK が表示されます。
オプション2: msbuild /blを使用して詳細検査を行う
詳細なビルド ログを生成するには、次のコマンドを実行します。
msbuild.binlogファイルが作成されます。 MSBuild 構造化ログビューア コンパイル中に使用される正確な NETCoreSdkVersion を識別します。
オプション3: Visual Studioから確認する
Visual Studio では、プロジェクトのプロパティ ウィンドウに移動し、ドロップダウン UI を使用してターゲット フレームワークを表示および編集できます。手動で XML を編集する必要はありません。
プロからのヒント: プロジェクトが期待どおりにビルドされない場合は、次のコマンドを使用して、.csproj またはビルド ログにリストされている SDK バージョンが実際にインストールされていることを確認します。
このステップは、次の場合に重要です。
- 古いリポジトリのクローン
- アーカイブされたプロジェクトの復元
- 異なる SDK を持つチームやマシン間での作業
- CI/CD パイプラインの不整合の診断
コマンドライン インターフェイス (CLI) の使用
.NET SDK のすべてのインストールには、コマンドラインインターフェース (CLI) が付属しており、アプリのビルド、開発、実行に関連するコマンドを手動で入力できます。.NET CLI にアクセスできるかどうかわからない場合は、次の手順に従ってください。
を押してコマンドウィンドウを開きます Windowsの+ Rをクリックし、「cmd」と入力してEnterキーを押します。「dotnet」と入力してEnterキーを押します。
- ターミナルまたはコマンド プロンプトを開きます。
- 実行:
次の出力が表示されます。
Usage: dotnet [options]
dotnet [path-to-application]
Options:
-h|--help Display help.
--info Display .NET information.
--list-sdks Display installed SDKs.
--list-runtimes Display installed runtimes.
3. アクティブな SDK バージョンを確認するには、次のコマンドを使用します。
dotnet --version
You can also use:
dotnet --list-sdks # Shows installed SDKs and versions
dotnet --list-runtimes # Lists installed runtime instances
注意: インストールされたSDKは通常、以下の場所にあります。 C:\プログラム ファイル\dotnet\sdk
よくあるエラーと修正方法
適切なSDKをインストールしていても、バージョンの不一致や設定の問題により、分かりにくいエラーが発生する可能性があります。ここでは、開発者が遭遇する最も一般的な問題と、それらを迅速に解決する方法をいくつかご紹介します。
エラー01
指定された SDK「Microsoft.NET.Sdk」が見つかりませんでした。
修正:
- インストールされていることを確認するには、dotnet –list-sdks を使用します。
- 不足しているSDKをインストールするか、global.jsonを更新してください
エラー02
互換性のあるフレームワークのバージョンが見つかりませんでした。
修正:
- dotnet –list-runtimes を使用して、正しいランタイムがインストールされていることを確認します。
- 必要なランタイムを以下からインストールします。 公式ダウンロードページ.
エラー03
エラー NETSDK1045: 現在の .NET SDK は .NET [バージョン] のターゲットをサポートしていません
修正:
- SDK が .csproj 内のターゲット フレームワークをサポートしていることを確認します。
- ターゲット バージョンに合わせて SDK をアップグレードすることを検討してください。
エラー04
プロジェクトは、インストールされていない .NET のプレビュー バージョンを対象としています。
修正:
- プレビュー SDK を使用するか、プロジェクトをサポートされている安定バージョンに更新します。
{
"sdk": {
"version": "8.0.100"
}
}
.NET Core vs. .NET vs. Framework vs. Standard
.NET、Framework、Core、Standard、統合 .NET 5+ のさまざまな種類に混乱している場合は、アプリまたはライブラリに適したものを選択できるように、ここで簡単に説明します。
| 機能 | NET Frameworkの | .NET Core (≤3.1) | .NET (5 以降) | .NET標準 |
|---|
| OSサポート | Windowsのみ | クロスプラットフォーム | クロスプラットフォーム | すべての.NETプラットフォーム |
| ステータス | レガシー(維持) | 置き換えられました | 現在(統合プラットフォーム) | 凍結(引き続きサポート) |
| 理想的な使用法 | 既存のデスクトップアプリ | .NET Core 3.1 以前のアプリ | 最新のアプリ、ライブラリ、サービス | 共有ライブラリの互換性レイヤー |
互換性について知りたい場合は、Microsoft .NET Coreをご覧ください。 公式ドキュメント.
.NET Core 最新バージョンの使用に関するヒント
.NET Coreの最新バージョンを使うには、最新の状態を維持するだけでなく、同期を維持することが重要です。そのためのヒントをいくつかご紹介します。
- 問題を防ぎ、デバッグを簡素化するために、開発環境、CI/CD 環境、本番環境を同じバージョンに保ちます。
- 長期サポートが必要な場合は、.NET Core 最新バージョンの LTS バージョンを選択し、予期しない中断を避けるためにサポート タイムラインに注意してください。
- 実行時に予期せぬ事態が発生しないように、開発、CI パイプライン、ホスティング環境を同じ SDK バージョンに合わせておきます。
- 特に本番環境のワークロードでは、アップグレードのオーバーヘッドを削減し、長期的な安定性を維持するには、LTS リリースを選択します。
- STS リリースを使用している場合は、サポート タイムラインが短くなり、変更が頻繁に行われることに注意してください。
- メジャー バージョン間の変更ログを確認し、潜在的な重大な変更に備えます。
- 強制的なアップグレードやセキュリティ リスクを回避するために、サポートの有効期限を監視します。
.NET スタックの可視性が必要ですか?
LogicMonitor は、ASP.NET Core サービス、コンテナー、クラウド デプロイメント、CI/CD パフォーマンスなど、.NET Web アプリケーションのフルスタックの監視をすべて単一のプラットフォームから提供します。
.NETスタックの可視性が必要な場合、これによりエンドツーエンドの洞察が得られ、問題を早期に発見して迅速に解決できます。 AIを活用したハイブリッドな可観測性 問題がユーザーやビジネスに影響を与える前に防止するのに役立ちます。
© LogicMonitor 2025 | 無断複写・転載を禁じます。 | ここで言及されているすべての商標、商号、サービス マーク、およびロゴは、それぞれの会社に帰属します。