Windows に .NET をインストールする
この記事では、Windows でサポートされている .NET のバージョン、.NET のインストール方法、SDK とランタイムの違いについて説明します。
.NET Framework とは異なり、.NET は Windows のバージョンに関連付けられていません。 Windows にインストールできる .NET Framework のバージョンは 1 つだけです。 ただし、.NET はスタンドアロンであるため、コンピューターの任意の場所にインストールできます。 一部のアプリには、それ専用の .NET コピーが含まれている場合があります。
.NET は、インストール方法で別のディレクトリが選択されている場合を除き、コンピューターの Program Files\dotnet ディレクトリに既定でインストールされます。
.NET は、ランタイムと SDK で構成されています。 ランタイムは .NET アプリを実行し、SDK はアプリの作成に使用されます。
適切なランタイムを選択する
Windows には、それぞれ異なる種類のアプリを実行できる 3 つの異なるランタイムがあります。 SDK には 3 つのランタイムがすべて含まれており、ランタイムのインストーラーには追加のランタイムが含まれている場合があります。 特定の .NET インストーラーにどのランタイムが含まれるかを次の表に示します。
インストーラー | .NET ランタイムを含む | .NET デスクトップ ランタイムを含む | ASP.NET Core ランタイムを含む |
---|---|---|---|
.NET ランタイム | はい | いいえ | いいえ |
.NET デスクトップ ランタイム | はい | はい | いいえ |
ASP.NET Core ランタイム | いいえ | 番号 | はい |
.NET SDK | はい | イエス | はい |
すべての .NET アプリを実行できるようにするには、ASP.NET Core ランタイムと .NET デスクトップ ランタイムの両方をインストールします。 ASP.NET Core ランタイムは Web ベースのアプリケーションを実行し、.NET デスクトップ ランタイムはデスクトップ アプリ (Windows Presentation Foundation (WPF) または Windows Forms のアプリケーションなど) を実行します。
.NET のインストール方法を選択する
.NET にはさまざまなインストール方法があり、一部の製品では独自のバージョンの .NET が管理される場合があります。 独自のバージョンの .NET を管理するソフトウェアを使用して .NET をインストールすると、.NET がシステム全体で有効にならない可能性があります。 他のソフトウェアを使用して .NET をインストールする場合の影響をしっかりと理解するようにしてください。
次のセクションの一覧を確認した後でどの方法を選択するかに迷う場合は、.NET インストーラーの使用が適切なことがあります。
開発者
-
Visual Studio を使用して .NET アプリを開発するときは、Visual Studio を使用して .NET をインストールします。 Visual Studio は、.NET の独自のコピーを管理します。 この方法は、SDK、ランタイム、および Visual Studio テンプレートをインストールします。
-
.NET アプリを開発するには、Visual Studio Code 用の C# 開発キットの拡張機能をインストールします。 拡張機能では、既にインストールされている SDK を使用することも、専用の SDK をインストールすることもできます。
ユーザーと開発者
-
実行する実行可能ファイルである Windows インストーラー パッケージを使用して .NET をインストールします。 この方法は、SDK とランタイムをインストールできます。 インストールはシステム全体で実行されます。
-
コマンド ライン経由で .NET を管理するときは、WinGet を使用して .NET をインストールします。 この方法は、SDK とランタイムをインストールできます。 インストールはシステム全体で実行されます。
-
SDK またはランタイムのインストールを自動化できる PowerShell スクリプト。 インストールする .NET のバージョンを選択できます。
サポートされているバージョン
以下の表は、現在サポートされている .NET リリースと、それらがサポートされている Windows のバージョンの一覧です。 これらのバージョンは、.NET のバージョンがサポート終了するか、Windows のバージョンの有効期限が切れるまでサポートされます。
ヒント
念のために記載しますが、この表の対象は、(.NET Framework ではなく) 最新の .NET です。 .NET Framework をインストールするには、「.NET Framework のインストール ガイド」を参照してください。
Windows 10 のバージョンのサービス終了日は、エディションごとに分かれています。 次の表では、Home、Pro、Pro Education、Pro for Workstations の各エディションだけが考慮されています。 具体的な詳細については、「Windows ライフサイクルのファクト シート」を確認してください。
オペレーティング システム | .NET 8 (アーキテクチャ) | .NET 6 (アーキテクチャ) |
---|---|---|
Windows 11 | ✔️ x64、x86、Arm64 | ✔️ x64、Arm64 |
Windows Server 2022 | ✔️ x64、x86 | ✔️ x64、x86 |
Windows 10 バージョン 1607 以降 | ✔️ x64、x86、Arm64 | ✔️ x64、x86、Arm64 |
Windows 8.1 | ❌ | ✔️ x64、x86 |
Windows 7 SP1 ESU | ❌ | ✔️ x64、x86 |
Windows Server 2022 Windows Server 2019 Windows Server、バージョン 1903 以降 Windows Server 2016 Windows Server 2012 R2 Windows Server 2012 |
✔️ x64、x86 | ✔️ x64、x86 |
Windows Server Core 2012 (および R2) | ✔️ x64、x86 | ✔️ x64、x86 |
Nano Server バージョン 1809 以上 | ✔️ x64 | ✔️ x64 |
Nano Server バージョン 1803 | ❌ | ❌ |
ヒント
+
記号は、最小バージョンを表します。
Windows 7 / 8.1 / Server 2012
Windows 2012 は最新バージョンの .NET で引き続きサポートされていますが、.NET 6 は Windows 7 と Windows 8.1 をサポートする最後のバージョンでした。 これらの 3 つのバージョンの Windows についてはすべて、追加の依存関係をインストールする必要があります。
オペレーティング システム | 前提条件 |
---|---|
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
Arm ベースの Windows PC
次のセクションでは、Arm ベースの Windows PC に .NET をインストールするときに考慮する必要がある点について説明します。
サポート対象
次の表は、Arm ベースの Windows PC でサポートされている .NET のバージョンを示します。
.NET のバージョン | SDK | ランタイム | パスの競合 | サポートされています |
---|---|---|---|---|
8 | はい | はい | いいえ | ✔️ |
8 | はい | はい | いいえ | ✔️ |
6 | はい | はい | いいえ | ✔️ |
6 | はい | はい | いいえ | ✔️ |
.NET SDK の x86、x64、および Arm64 の各バージョンは、互いに独立して存在します。 新しいバージョンがリリースされた場合は、各アーキテクチャのインストールをアップグレードする必要があります。
パスの違い
Arm ベースの Windows PC では、Arm64 バージョンのすべての .NET が、通常の C:\Program Files\dotnet\ フォルダーにインストールされます。 ただし、x64 バージョンの .NET SDK は、C:\Program Files\dotnet\x64\ フォルダーにインストールされます。
パスの競合
x64 .NET SDK は、前のセクションで説明したように、独自のディレクトリにインストールされます。 これにより、.NET SDK の Arm64 バージョンと x64 バージョンが同じマシンに存在するようになります。 ただし、6.0 より前の x64 SDK はサポートされず、Arm64 バージョンと同じ場所 (C:\Program Files\dotnet\ フォルダー) にインストールされます。 サポートされていない x64 SDK をインストールする必要がある場合は、先に Arm64 バージョンをアンインストールする必要があります。 反対の場合も同じです。 Arm64 バージョンをインストールするには、サポートされていない x64 SDK をアンインストールする必要があります。
パス変数
.NET SDK の x64 と Arm64 の両方のバージョンをインストールしている場合は、システム パスに .NET を追加する環境変数 (PATH
変数など) を変更することが必要な場合があります。 また、一部のツールは DOTNET_ROOT
環境変数に依存しているため、適切な .NET SDK のインストール フォルダーを指すように更新する必要がある場合もあります。
Visual Studio を使用してインストールする
Visual Studio は、.NET の他のコピーとは別に、.NET の独自のコピーをインストールします。 Visual Studio のバージョンが異なると、サポートする .NET のバージョンが異なります。 Visual Studio の最新バージョンは、常に最新バージョンの .NET をサポートします。
Visual Studio インストーラーは、Visual Studio をインストールして構成します。 一部の Visual Studio ワークロードには、ASP.NET や Web 開発、.NET Multi-Platform App UI 開発などの .NET が含まれます。 .NET の特定のバージョンは、[個別のコンポーネント] タブを使用してインストールできます。
Visual Studio のドキュメントでは、次の方法について説明しています。
.NET バージョンと Visual Studio
次の表で、Visual Studio を使用して .NET アプリを開発している場合に、ターゲットの .NET SDK バージョンに基づいて最低限必要な Visual Studio のバージョンを説明しています。
.NET SDK バージョン | Visual Studio のバージョン |
---|---|
8 | Visual Studio 2022 バージョン 17.8 以降。 |
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 のバージョン情報] を選択します。
- [バージョン情報] ダイアログで、バージョン番号を確認します。
詳細については、「.NET SDK、MSBuild、Visual Studio のバージョン管理」を参照してください。
Visual Studio Code を使用してインストールする
Visual Studio Code は、デスクトップ上で動作する強力で軽量なソース コード エディターです。 Visual Studio Code では、システムに既にインストールされている SDK を使用できます。 さらに、まだインストールされていない場合は、C# 開発キット拡張機能により .NET が自動的にインストールされます。
Visual Studio Code を使用して .NET をインストールする手順については、「VS Code での C# の概要」を参照してください。
.NET インストーラー
.NET のダウンロード ページには、Windows インストーラーの実行可能ファイルが用意されています。
Web ブラウザーを開き、https://dotnet.microsoft.com/download/dotnet に移動します。
ダウンロードする .NET のバージョン (8.0 など) を選択します。
.NET をダウンロードするためのリンクが含まれている SDK またはランタイムのボックスを見つけます。
[インストーラー] 列で、Windows 行を見つけて、ご使用の CPU アーキテクチャのリンクを選びます。 迷う場合は、最も一般的な x64 を選択してください。
ブラウザーによってインストーラーが自動的にダウンロードされます。
ヒント
次の図は SDK を示していますが、ランタイムをダウンロードすることもできます。
エクスプローラーを開き、ファイルがダウンロードされた場所 (通常は [ダウンロード] フォルダー) に移動します。
ファイルをダブルクリックして .NET をインストールします。
Windows インストーラー ダイアログが開きます。
[インストール] を選び、指示に従って .NET をインストールします。
.NET CLI の使用方法については、「.NET CLI の概要」を参照してください。
コマンド ライン オプション
/?
パラメーターを使用して、オプションの一覧を表示します。
運用環境で、または継続的インテグレーションをサポートするために .NET をサイレント インストールする場合は、次のオプションを使用します。
/install
.NET をインストールします。/quiet
UI やプロンプトが表示されないようにします。/norestart
再起動の試行を抑制します。
dotnet-sdk-8.0.100-win-x64.exe /install /quiet /norestart
ヒント
成功した場合は、インストーラーから終了コード 0 が返されます。再起動が必要であることを示す場合は、終了コード 3010 が返されます。 その他の値は、通常エラー コードです。
Windows パッケージ マネージャー (WinGet) を使用してインストールする
winget.exe
ツールを使用して、Windows パッケージ マネージャー サービス経由で .NET をインストールして管理できます。 WinGet をインストールして使用する方法の詳細については、「winget ツールを使用したアプリケーションのインストールと管理」を参照してください。
.NET システム全体をインストールする場合は、管理者特権でインストールします。
.NET の WinGet パッケージには次があります。
Microsoft.DotNet.Runtime.8
—.NET ランタイム 8.0Microsoft.DotNet.AspNetCore.8
—ASP.NET Core ランタイム 8.0Microsoft.DotNet.DesktopRuntime.8
—.NET デスクトップ ランタイム 8.0Microsoft.DotNet.SDK.8
—.NET SDK 8.0
SDK のインストール
SDK をインストールする場合、対応するランタイムをインストールする必要はありません。
PowerShell、コマンド プロンプトなどのターミナルを開きます。
winget install
コマンドを実行し、SDK パッケージの名前を渡します。winget install Microsoft.DotNet.SDK.8
.NET CLI の使用方法については、「.NET CLI の概要」を参照してください。
ランタイムをインストールする
インストールできるランタイムにはさまざまなものがあります。 各ランタイムに含まれる内容については、「適切なランタイムを選択する」セクションを参照してください。
PowerShell、コマンド プロンプトなどのターミナルを開きます。
winget install
コマンドを実行し、SDK パッケージの名前を渡します。winget install Microsoft.DotNet.DesktopRuntime.8 winget install Microsoft.DotNet.AspNetCore.8
.NET CLI の使用方法については、「.NET CLI の概要」を参照してください。
バージョンを検索する
winget search
コマンドを使用して、インストールするパッケージのさまざまなバージョンを検索します。 たとえば、次のコマンドは、WinGet 経由で使用できるすべての .NET SDK を検索します。
winget search Microsoft.DotNet.SDK
検索結果は、各パッケージ ID とともに表に出力されます。
Name Id Version Source
----------------------------------------------------------------------------------------------
Microsoft .NET SDK 9.0 Preview Microsoft.DotNet.SDK.Preview 9.0.100-preview.3.24204.13 winget
Microsoft .NET SDK 8.0 Microsoft.DotNet.SDK.8 8.0.300 winget
Microsoft .NET SDK 7.0 Microsoft.DotNet.SDK.7 7.0.409 winget
Microsoft .NET SDK 6.0 Microsoft.DotNet.SDK.6 6.0.422 winget
Microsoft .NET SDK 5.0 Microsoft.DotNet.SDK.5 5.0.408 winget
Microsoft .NET SDK 3.1 Microsoft.DotNet.SDK.3_1 3.1.426 winget
プレビュー バージョンをインストールする
8
などのバージョン番号を単語 Preview
に置き換えることで、プレビュー バージョンをインストールできます。 次の例では、.NET デスクトップ ランタイムのプレビュー リリースがインストールされます。
winget install Microsoft.DotNet.DesktopRuntime.Preview
PowerShell を使用したインストール
継続的インテグレーションと非管理者インストールについては、dotnet-install
PowerShell スクリプト経由で .NET をインストールすることをお勧めします。 システムで通常使用するために .NET をインストールする場合は、.NET インストーラーと Windows パッケージ マネージャーのいずれかのインストール方法を使用します。
このスクリプトを使用すると、最新の長期サポート (LTS) バージョン (.NET 8) が既定でインストールされます。 -Channel
スイッチを指定することで、特定のリリースを選択できます。 ランタイムをインストールするには、-Runtime
スイッチを含めます。 それ以外の場合は、スクリプトによって SDK がインストールされます。 スクリプトは https://dot.net/v1/dotnet-install.ps1 で入手でき、ソース コードは GitHub でホストされています。
スクリプトの詳細については、「dotnet-install スクリプト リファレンス」をご覧ください。
ランタイムをインストールする
-Runtime
スイッチを指定することで、.NET ランタイムがインストールされます。
https://dot.net/v1/dotnet-install.ps1 からインストール スクリプトをダウンロードします。
PowerShell を開き、スクリプトが含まれているフォルダーに移動します。
互換性を最大限に高めるために、次のコマンドを実行してデスクトップと ASP.NET Core の両方のランタイムをインストールします。
dotnet-install.ps1 -Runtime windowsdesktop dotnet-install.ps1 -Runtime aspnetcore
.NET CLI の使用方法については、「.NET CLI の概要」を参照してください。
SDK のインストール
SDK をインストールする場合、ランタイムをインストールする必要はありません。
https://dot.net/v1/dotnet-install.ps1 からインストール スクリプトをダウンロードします。
PowerShell を開き、スクリプトが含まれているフォルダーに移動します。
次のコマンドを実行して、.NET SDK をインストールします。
dotnet-install.ps1
Note
-Runtime
スイッチを省略することで、SDK がインストールされます。
.NET CLI の使用方法については、「.NET CLI の概要」を参照してください。
検証
インストーラーまたはバイナリ リリースをダウンロードした後、ファイルを検証して、変更されたり破損したりしていないことを確認します。 コンピューターでチェックサムを検証し、ダウンロード Web サイトで報告されていたものと比較できます。
公式ダウンロード ページからファイルをダウンロードするときに、ファイルのチェックサムがテキスト ボックスに表示されます。 [コピー] ボタンを選択すると、クリップボードにチェックサム値がコピーされます。
PowerShell またはコマンド プロンプトを使用して、ダウンロードしたファイルのチェックサムを検証できます。 たとえば、次のコマンドは、dotnet-sdk-8.0.100-win-x64.exe ファイルのチェックサムを報告します。
> certutil -hashfile dotnet-sdk-8.0.100-win-x64.exe SHA512
SHA512 hash of dotnet-sdk-8.0.100-win-x64.exe:
248acec95b381e5302255310fb9396267fd74a4a2dc2c3a5989031969cb31f8270cbd14bda1bc0352ac90f8138bddad1a58e4af1e56cc4a1613b1cf2854b518e
CertUtil: -hashfile command completed successfully.
> (Get-FileHash .\dotnet-sdk-8.0.100-win-x64.exe -Algorithm SHA512).Hash
248acec95b381e5302255310fb9396267fd74a4a2dc2c3a5989031969cb31f8270cbd14bda1bc0352ac90f8138bddad1a58e4af1e56cc4a1613b1cf2854b518e
このチェックサムとダウンロード サイトで提供された値を比較します。
PowerShell とチェックサム ファイルを使用して検証する
.NET リリース ノートには、ダウンロードしたファイルの検証に使用できるチェックサム ファイルへのリンクが含まれています。 次の手順は、チェックサム ファイルをダウンロードし、.NET インストール バイナリを検証する方法について説明しています。
GitHub (https://github.com/dotnet/core/tree/main/release-notes/8.0) にある .NET 8 のリリース ノート ページには、Releases という名前のセクションが含まれています。 このセクションの表は、各 .NET 8 リリースのダウンロード ファイルとチェックサム ファイルにリンクされています。
ダウンロードした .NET のバージョンのリンクを選択します。 前のセクションでは、.NET 8.0.0 リリースに含まれる .NET SDK 8.0.100 を使用しました。
ヒント
チェックサム ファイルが含まれている .NET リリースがわからない場合は、見つかるまでリンクを調べます。
リリース ページでは、.NET ランタイムと .NET SDK のバージョン、およびチェックサム ファイルへのリンクを確認できます。
チェックサム ファイルへのリンクをコピーします。
次のスクリプトを使用しますが、リンクを置き換えて適切なチェックサム ファイルをダウンロードします。
Invoke-WebRequest https://dotnetcli.blob.core.windows.net/dotnet/checksums/8.0.0-sha.txt -OutFile 8.0.0-sha.txt
チェックサム ファイルと .NET リリース ファイルの両方が同じディレクトリにダウンロードして、チェックサム ファイルで .NET ダウンロードのチェックサムを検索します。
検証に合格すると、True が出力されます。
> (Get-Content .\8.0.0-sha.txt | Select-String "dotnet-sdk-8.0.100-win-x64.exe").Line -like (Get-FileHash .\dotnet-sdk-8.0.100-win-x64.exe -Algorithm SHA512).Hash + "*" True
False が出力された場合、ダウンロードしたファイルは無効であり、使用しないでください。
トラブルシューティング
.NET SDK をインストールしたら、.NET CLI コマンドを実行しようとしたときに問題が発生することがあります。 このセクションにはそのような一般的な問題がまとめてあり、それらの解決策を提供します。
- .NET SDK が見つからない
- アプリのビルドが予想よりも遅い
hostfxr.dll
/api-ms-win-crt-runtime-l1-1-0.dll
/api-ms-win-cor-timezone-l1-1-0.dll
が見つからない
.NET 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\ より上に移動します。
アプリのビルドが予想よりも遅い
Windows 機能である Smart App Control がオフになっていることを確認します。 開発に使用するマシンで Smart App Control を有効にすることは推奨されません。 [オフ] 以外の設定はすべて、SDK パフォーマンスに悪影響を与える可能性があります。
hostfxr.dll
/ api-ms-win-crt-runtime-l1-1-0.dll
/ api-ms-win-cor-timezone-l1-1-0.dll
が欠落しています
Microsoft Visual C++ 2015-2019 再頒布可能パッケージ (64 ビットまたは 32 ビット) をインストールします。
関連するコンテンツ
.NET