Windows に .NET をインストールする
この記事では、Windows に .NET をインストールする方法について説明します。 .NET は、ランタイムと SDK で構成されています。 ランタイムは .NET アプリを実行するために使用され、アプリに含まれている場合と含まれていない場合があります。 SDK は、.NET アプリとライブラリの作成に使用されます。 .NET ランタイムは、常に SDK と共にインストールされます。
.NET の最新バージョンは 7 です。
サポートされるリリースには、長期サポート (LTS) リリースと Standard Term Support (STS) の 2 種類があります。 すべてのリリースの品質は同じです。 唯一の違いは、サポートの長さです。 LTS リリースでは、3 年間無料のサポートとパッチが提供されます。 STS リリースでは、18 か月間の無料サポートとパッチが提供されます。 詳細については、「 .NET サポート ポリシー」を参照してください。
次の表に、.NET (および .NET Core) の各バージョンのサポート状態を示します。
✔️ Supported | ❌ サポートされていない |
---|---|
7 (STS) | 5 |
6 (LTS) | 3.1 |
3.0 | |
2.1 | |
2.0 | |
1.1 | |
1.0 |
Windows パッケージ マネージャー (winget) を使用してインストールする
winget ツールを使用して、Windows パッケージ マネージャー サービスを介して .NET をインストールして管理できます。 winget をインストールして使用する方法の詳細については、winget ツールの使用に関する記事を参照してください。
.NET システム全体をインストールする場合は、管理者特権でインストールします。
SDK のインストール
.NET SDK を使用すると、.NET を使用してアプリを開発できます。 .NET SDK をインストールする場合、対応するランタイムをインストールする必要はありません。 .NET SDK をインストールするには、次のコマンドを実行します。
winget install Microsoft.DotNet.SDK.7
ランタイムをインストールする
Windows の場合、インストールできる .NET ランタイムは 3 つあります。 すべての種類の .NET アプリとの互換性を実現するには、.NET デスクトップ ランタイムと ASP.NET Core ランタイムの両方をインストールする必要があります。
.NET デスクトップ ランタイム
このランタイムには、基本 .NET ランタイムが含まれ、Windows Presentation Foundation (WPF) と、.NET を使って構築される Windows フォーム アプリをサポートしています。 これは、Windows に付属する .NET Framework とは異なります。
winget install Microsoft.DotNet.DesktopRuntime.7
ASP.NET Core ランタイム
このランタイムには基本 .NET ランタイムが含まれており、Web サーバー アプリを実行します。 ASP.NET Core ランタイムを使用すると、ランタイムを提供しない .NET を使用して作成されたアプリを実行できます。 次のコマンドを実行すると、.NET の最も互換性の高いランタイムである ASP.NET Core ランタイムがインストールされます。 ご利用のターミナルで、次のコマンドを実行します。
winget install Microsoft.DotNet.AspNetCore.7
.NET ランタイム
これは基本ランタイムであり、コンソール アプリの実行に必要なコンポーネントのみが含まれています。 通常は、他のランタイムもインストールします。
winget install Microsoft.DotNet.Runtime.7
ランタイムのプレビュー バージョンをインストールするには、6
などのバージョン番号を単語 Preview
に置き換えます。 次の例では、.NET デスクトップ ランタイムのプレビュー リリースがインストールされます。
winget install Microsoft.DotNet.DesktopRuntime.Preview
Visual Studio Code と共にインストールする
Visual Studio Code は、デスクトップ上で動作する強力で軽量なソース コード エディターです。 Visual Studio Code は、Windows、macOS、Linux で利用できます。
Visual Studio Code には、Visual Studio のような自動化された .NET Core インストーラーは付属していませんが、.NET Core のサポートを簡単に追加できます。
- Visual Studio Code をダウンロードしてインストールします。
- .NET SDK をダウンロードしてインストールします。
- Visual Studio Code マーケットプレースから C# 拡張機能をインストールします。
Windows インストーラーを使用したインストール
.NET のダウンロード ページには、Windows インストーラーの実行可能ファイルが用意されています。
[重要]2021 年 11 月以降、Windows インストーラー パッケージを使用して .NET のインストール パスを変更することはできません。 .NET を別のパスにインストールするには、 dotnet-install スクリプトを使用します。
運用環境で、または継続的インテグレーションをサポートするために .NET をサイレント インストールする場合は、次のスイッチを使用します。
/install
.NET をインストールします。/quiet
UI やプロンプトが表示されないようにします。/norestart
再起動の試行を抑制します。
dotnet-sdk-7.0.100-win-x64.exe /install /quiet /norestart
詳細については、「インストーラーの標準コマンドライン オプション」を参照してください。
ヒント
成功した場合は、インストーラーから終了コード 0 が返されます。再起動が必要であることを示す場合は、終了コード 3010 が返されます。 その他の値は通常、エラー コードです。
PowerShell オートメーションを使用してインストールする
dotnet-install スクリプトは、ランタイムの CI 自動化および管理者以外によるインストールに使用されます。 スクリプトは、dotnet-install スクリプト参照ページからダウンロードできます。
このスクリプトを使用すると、最新の長期サポート (LTS) バージョン (.NET 6) が既定でインストールされます。 Channel
スイッチを指定することで、特定のリリースを選択できます。 ランタイムをインストールするには、Runtime
スイッチを含めます。 それ以外の場合は、スクリプトによって SDK がインストールされます。
次のコマンドは、互換性を最大限に高める ASP.NET Core ランタイムをインストールします。 ASP.NET Core ランタイムには、標準の .NET ランタイムも含まれています。
dotnet-install.ps1 -Channel 7.0 -Runtime aspnetcore
-Runtime
スイッチを省略して SDK をインストールします。 -Channel
この例では、スイッチが にSTS
設定されています。これにより、最新の Standard Term Support バージョン (.NET 7) がインストールされます。
dotnet-install.ps1 -Channel STS
Visual Studio を使用してインストールする
次の表で、Visual Studio を使用して .NET アプリを開発している場合に、ターゲットの .NET SDK バージョンに基づいて最低限必要な Visual Studio のバージョンを説明しています。
.NET SDK バージョン | Visual Studio のバージョン |
---|---|
7 | Visual Studio 2022 バージョン 17.4 以降。 |
6 | Visual Studio 2022 バージョン 17.0 以降 |
5 | Visual Studio 2019 バージョン 16.8 以降。 |
3.1 | Visual Studio 2019 バージョン 16.4 以降。 |
3.0 | Visual Studio 2019 バージョン 16.3 以降。 |
2.2 | Visual Studio 2017 バージョン 15.9 以降。 |
2.1 | Visual Studio 2017 バージョン 15.7 以降。 |
Visual Studio を既にインストールしてある場合は、次の手順でバージョンを確認できます。
- Visual Studio を開きます。
- [ヘルプ]>[Microsoft Visual Studio のバージョン情報] を選択します。
- [バージョン情報] ダイアログで、バージョン番号を確認します。
Visual Studio には、最新の .NET SDK とランタイムをインストールできます。
ワークロードを選択する
Visual Studio をインストールまたは変更するときは、ビルドするアプリケーションの種類に応じて、次の 1 つ以上のワークロードを選択します。
- [他のツールセット] セクションの [.NET Core クロスプラットフォームの開発] ワークロード。
- [Web とクラウド] セクションの [ASP.NET と Web 開発] ワークロード。
- [Web とクラウド] セクションの [Azure の開発] ワークロード。
- [デスクトップとモバイル] セクションの [.NET デスクトップ開発] ワークロード。
サポートされているリリース
以下の表は、現在サポートされている .NET リリースと、それらがサポートされている Windows のバージョンの一覧です。 これらのバージョンは、.NET のバージョンがサポート終了するか、Windows のバージョンの有効期限が切れるまでサポートされます。
Windows 10 のバージョンのサービス終了日は、エディションごとに分かれています。 次の表では、Home、Pro、Pro Education、Pro for Workstations の各エディションだけが考慮されています。 具体的な詳細については、「Windows ライフサイクルのファクト シート」を確認してください。
ヒント
+
記号は、最小バージョンを表します。
オペレーティング システム | .NET 7 | .NET 6 |
---|---|---|
Windows 11 | ✔️ | ✔️ |
Windows Server 2022 | ✔️ | ✔️ |
Windows Server バージョン 1903 以降 | ✔️ | ✔️ |
Windows 10 バージョン 1607 以降 | ✔️ | ✔️ |
Windows 8.1 | ❌ | ✔️ |
Windows 7 SP1 ESU | ❌ | ✔️ |
Windows Server 2019 Windows Server 2016 Windows Server 2012 R2 Windows Server 2012 |
✔️ | |
Windows Server Core 2012 R2 | ✔️ | ✔️ |
Windows Server Core 2012 | ✔️ | ✔️ |
Nano Server バージョン 1809 以上 | ✔️ | ✔️ |
Nano Server バージョン 1803 | ❌ | ❌ |
.NET 7 でサポートされているオペレーティング システム、ディストリビューション、ライフサイクル ポリシーの詳細については、「 .NET 7 でサポートされる OS バージョン」を参照してください。
サポートされていないリリース
次のバージョンの .NET は、❌ サポート対象外となりました。
- .NET 5
- .NET Core 3.1
- .NET Core 3.0
- .NET Core 2.2
- .NET Core 2.1
- .NET Core 2.0
ランタイムに関する情報
ランタイムは、.NET で作成されたアプリを実行するために使用されます。 アプリの作成者は、アプリを公開するとき、アプリにランタイムを含めることができます。 ランタイムが含まれていない場合は、ユーザーがランタイムをインストールする必要があります。
Windows には、3 つの異なるランタイムをインストールできます。
ASP.NET Core ランタイム
ASP.NET Core アプリを実行します。 .NET ランタイムが含まれます。Desktop ランタイム
Windows 用の .NET WPF と Windows フォームのデスクトップ アプリを実行します。 .NET ランタイムが含まれます。.NET ランタイム
このランタイムは最も単純なランタイムであり、他のランタイムは含まれていません。 .NET アプリとの互換性を最善にするには、"ASP.NET Core ランタイム" と "Desktop ランタイム" の両方をインストールすることを強くお勧めします。
SDK に関する情報
SDK は、.NET アプリとライブラリを作成して公開するために使用されます。 SDK のインストールには、次の 3 つのランタイムが含まれます: ASP.NET Core、Desktop、.NET。
Arm ベースの Windows PC
次のセクションでは、Arm ベースの Windows PC に .NET をインストールするときに考慮する必要がある点について説明します。
サポートされる操作
次の表は、Arm ベースの Windows PC でサポートされている .NET のバージョンを示します。
.NET のバージョン | アーキテクチャ | SDK | ランタイム | パスの競合 |
---|---|---|---|---|
7 | Arm64 | はい | はい | いいえ |
7 | X64 | はい | はい | いいえ |
6 | Arm64 | はい | はい | いいえ |
6 | X64 | はい | はい | いいえ |
5 | Arm64 | はい | はい | はい |
5 | X64 | いいえ | はい | はい |
.NET 6 以降では、x64 バージョンと Arm64 バージョンの .NET SDK は互いに独立して存在します。 新しいバージョンがリリースされた場合は、各アーキテクチャのインストールをアップグレードする必要があります。
パスの違い
Arm ベースの Windows PC では、Arm64 バージョンのすべての .NET が、通常の C:\Program Files\dotnet\ フォルダーにインストールされます。 ただし、 x64 バージョンの .NET 6 SDK または .NET 7 SDK をインストールすると、 C:\Program Files\dotnet\x64\ フォルダーにインストールされます。
パスの競合
.NET 6 以降では、前のセクションで説明したように、 x64 .NET SDK は独自のディレクトリにインストールされます。 これにより、Arm64 バージョンと x64 バージョンの .NET SDK を同じコンピューター上に存在できます。 ただし、6 より前の x64 SDK はサポートされておらず、Arm64 バージョンの C:\Program Files\dotnet\ フォルダーと同じ場所にインストールされます。 サポートされていない x64 SDK をインストールする必要がある場合は、先に Arm64 バージョンをアンインストールする必要があります。 反対も同様で、Arm64 バージョンをインストールするには、サポートされていない x64 SDK をアンインストールする必要があります。
パス変数
.NET SDK の x64 バージョンと Arm64 バージョンの両方がインストールされている場合は、システム パスに .NET を追加する環境変数 (変数など PATH
) を変更する必要がある場合があります。 さらに、一部のツールは環境変数に DOTNET_ROOT
依存しています。これは、適切な .NET SDK インストール フォルダーを指すためにも更新する必要があります。
依存関係
.NET 7 では、次の Windows バージョンがサポートされています。
注意
+
記号は、最小バージョンを表します。
OS | バージョン | アーキテクチャ |
---|---|---|
Windows 11 | 21H2 以降 | x64、Arm64 |
Windows 10 クライアント | 1607+ | x64、x86、Arm64 |
Windows Server | 2012+ | x64、x86 |
Windows サーバー コア | 2012+ | x64、x86 |
Nano Server | 1809+ | X64 |
.NET 7 でサポートされているオペレーティング システム、ディストリビューション、ライフサイクル ポリシーの詳細については、「 .NET 7 でサポートされる OS のバージョン」を参照してください。
Windows 7 / 8.1 / Server 2012
次の Windows のバージョンに .NET SDK またはランタイムをインストールする場合は、さらに依存関係が必要になります。
オペレーティング システム | 前提条件 |
---|---|
Windows 7 SP1 ESU | - Microsoft Visual C++ 2015-2019 再頒布可能パッケージ 64 ビット / 32 ビット - KB3063858 64 ビット / 32 ビット - Microsoft Root Certificate Authority 2011 (.NET Core 2.1 のオフライン インストーラーのみ) |
Windows 8.1 | Microsoft Visual C++ 2015-2019 再頒布可能パッケージ 64 ビット / 32 ビット |
Windows Server 2012 | Microsoft Visual C++ 2015-2019 再頒布可能パッケージ 64 ビット / 32 ビット |
Windows Server 2012 R2 | Microsoft Visual C++ 2015-2019 再頒布可能パッケージ 64 ビット / 32 ビット |
上記の要件は、次のいずれかの dll に関するエラーが発生した場合にも必要です。
- api-ms-win-crt-runtime-l1-1-0.dll
- api-ms-win-cor-timezone-l1-1-0.dll
- hostfxr.dll
Docker
コンテナーを使用すると、アプリケーションをホスト システムの他の部分から簡単に分離できます。 同じコンピューター上のコンテナーでは、カーネルだけが共有され、アプリケーションに提供されたリソースが使用されます。
.NET は Docker コンテナー内で実行できます。 公式の .NET Docker イメージは Microsoft Container Registry (MCR) に公開され、Microsoft .NET の Docker Hub リポジトリで見つけられます。 各リポジトリには、.NET (SDK またはランタイム) と自分が使用できる OS のさまざまな組み合わせのイメージが含まれています。
Microsoft は、特定のシナリオに対応したイメージを用意しています。 たとえば、ASP.NET Core リポジトリには、運用環境での ASP.NET Core アプリの実行用にビルドされたイメージが用意されています。
Docker コンテナー内で .NET を使用する方法の詳細については、「.NET および Docker の概要」とサンプルページを参照してください。
トラブルシューティング
.NET SDK をインストールした後、.NET CLI コマンドを実行しようとしたときに問題が発生することがあります。 このセクションにはそのような一般的な問題がまとめてあり、それらの解決策を提供します。
インストールされた .NET Core SDK が見つからなかった
ほとんどの場合、.NET SDK の x86 (32 ビット) と x64 (64 ビット) の両方のバージョンをインストールします。 これにより、dotnet
コマンドを実行すると、x64 バージョンに解決する必要がある場合に x86 バージョンに解決されるため、競合が発生します。 これは通常、x64 バージョンを最初に解決するように %PATH%
変数を調整することによって解決されます。
where.exe dotnet
コマンドを実行して、両方のバージョンがインストールされていることを確認します。 そうすると、Program Files\ と Program Files (x86)\ 両方のフォルダーのエントリが表示されるはずです。 Program Files (x86)\ フォルダーが次の例のように最初に表示される場合は、正しくないので、次のステップを続ける必要があります。> where.exe dotnet C:\Program Files (x86)\dotnet\dotnet.exe C:\Program Files\dotnet\dotnet.exe
Program Files\ が正しく最初に表示される場合は、このセクションで説明している問題ではないので、GitHub で .NET のサポート要求のイシューを作成する必要があります
[Windows] ボタンをクリックし、検索に「システム環境変数の編集」と入力します。 [システム環境変数の編集] を選びます。
[システムのプロパティ] ウィンドウの [詳細設定] タブが表示されます。[環境変数] を選びます。
[環境変数] ウィンドウの [システム変数] グループで、Path* の行を選び、[編集] ボタンを選びます。
[上へ移動] および [下へ移動] ボタンを使って、C:\Program Files\dotnet\ エントリを C:\Program Files (x86)\dotnet\ より上に移動します。