Windows に .NET をインストールする

Windows に .NET をインストールするには、さまざまな方法があります。 この記事は、SDK とランタイムの違い、インストールする必要があるランタイム、および .NET のインストールに使用する方法を理解するのに役立ちます。

.NET は、ランタイムと SDK で構成されています。 ランタイムは .NET アプリを実行し、SDK はアプリの作成に使用されます。

.NET Framework とは異なり、.NET は Windows のバージョンに対してインストールされて、それに関連付けられるのではありません。 Windows にインストールできる .NET Framework のバージョンは 1 つだけです。 .NET はコンピューター上の任意の場所にインストールでき、一部のアプリには独自の .NET のコピーが含まれる場合があります。

既定では .NET は、インストール方法で別のディレクトリが選択されない限り、コンピューター上の Program Files\dotnet ディレクトリにインストールされます。

適切なランタイムを選択する

Windows には、それぞれ異なる種類のアプリを実行できる 3 つの異なるランタイムがあります。 SDK には、この 3 つのランタイムすべてが含まれています。 特定のランタイム 1 つをインストールしても、他のランタイムが含まれる可能性があります。 特定の .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 フォーム (WinForms) アプリなどの任意のデスクトップ アプリを実行します。

.NET のインストール方法を選択する

.NET のインストールにはさまざまな方法があり、Visual Studio などの一部の製品は、独自のバージョンの .NET を管理する場合があります。 独自のバージョンの .NET を管理するソフトウェア経由で .NET をインストールする場合は、.NET アプリを実行できるように、.NET ランタイムも別個にインストールする必要があります。

次のセクションの一覧を確認した後でどの方法を選択するかに迷う場合は、.NET インストーラーの使用が適切なことがあります。

開発者

  • Visual Studio

    Visual Studio を使用して .NET アプリを開発するときは、Visual Studio を使用して .NET をインストールします。 Visual Studio は、.NET の独自のコピーを管理します。 この方法は、SDK、ランタイム、および Visual Studio テンプレートをインストールします。

  • Visual Studio Code - C# 開発キット

    .NET アプリを開発するには、Visual Studio Code 用の C# 開発キットの拡張機能をインストールします。 この方法は、前にインストールした SDK を使用します。

ユーザーと開発者

  • .NET インストーラー

    実行する実行可能ファイルである Windows インストーラー パッケージを使用して .NET をインストールします。 この方法は、SDK とランタイムをインストールできます。 インストールはシステム全体で実行されます。

  • Windows パッケージ マネージャー (WinGet)

    コマンド ライン経由で .NET を管理するときは、WinGet を使用して .NET をインストールします。 この方法は、SDK とランタイムをインストールできます。 インストールはシステム全体で実行されます。

  • PowerShell

    SDK またはランタイムのインストールを自動化できる PowerShell スクリプト。 インストールする .NET のバージョンを選択できます。

サポートされているバージョン

以下の表は、現在サポートされている .NET リリースと、それらがサポートされている Windows のバージョンの一覧です。 これらのバージョンは、.NET のバージョンがサポート終了するか、Windows のバージョンの有効期限が切れるまでサポートされます。

ヒント

念のために記載しますが、この表の対象は、(.NET Framework ではなく) 最新の .NET です。 .NET Framework をインストールするには、「.NET Framework のインストール ガイド」を参照してください。

Windows 10 のバージョンのサービス終了日は、エディションごとに分かれています。 次の表では、HomeProPro EducationPro 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 インストーラーを示すスクリーンショット。

.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 を既にインストールしてある場合は、次の手順でバージョンを確認できます。

  1. Visual Studio を開きます。
  2. [ヘルプ]>[Microsoft Visual Studio のバージョン情報] を選択します。
  3. [バージョン情報] ダイアログで、バージョン番号を確認します。

詳細については、「.NET SDK、MSBuild、Visual Studio のバージョン管理」を参照してください。

Visual Studio Code を使用してインストールする

Visual Studio Code は、システムに既にインストールされている .NET のバージョンを使用します。 .NET インストーラーWindows パッケージ マネージャーのいずれかを使用して .NET をインストールします。 Visual Studio は、Visual Studio Code では使用できない .NET の独自のコピーをインストールします。

.NET アプリは、C# 開発キットの拡張機能を使用して Visual Studio Code で作成されます。

  1. まず、Visual Studio のセクションを除く他のいずれかのセクションの手順に従って .NET SDK をインストールします。

  2. 次に、Visual Studio Code をまだインストールしていない場合はインストールします。 詳細については、「Windows での Visual Studio Code (英語)」を参照してください。

  3. 最後に、C# 開発キットの拡張機能をインストールします。 詳細については、「VS Code での C# の概要 (英語)」を参照してください。

.NET インストーラー

.NET のダウンロード ページには、Windows インストーラーの実行可能ファイルが用意されています。

  1. Web ブラウザーを開き、https://dotnet.microsoft.com/download/dotnet に移動します。

  2. ダウンロードする .NET のバージョン (8.0 など) を選択します。

  3. .NET をダウンロードするためのリンクが含まれている SDK またはランタイムのボックスを見つけます。

  4. [インストーラー] 列で、Windows 行を見つけて、ご使用の CPU アーキテクチャのリンクを選びます。 迷う場合は、最も一般的な x64 を選択してください。

    ブラウザーによって MSI パッケージが自動的にダウンロードされます。

    ヒント

    次の図は SDK を示していますが、ランタイムをダウンロードすることもできます。

    SDK のダウンロード リンクが強調表示された .NET ダウンロード ページの画像。

  5. エクスプローラーを開き、ファイルがダウンロードされた場所 (通常は [ダウンロード] フォルダー) に移動します。

  6. ファイルをダブルクリックして .NET をインストールします。

    Windows インストーラー ダイアログが開きます。

    .NET MSI インストーラー アプリ ウィンドウのスクリーンショット。

  7. [インストール] を選び、指示に従って .NET をインストールします。

.NET CLI の使用方法については、「.NET CLI の概要」を参照してください。

コマンド ライン オプション

運用環境で、または継続的インテグレーションをサポートするために .NET をサイレント インストールする場合は、次の Windows インストーラー オプションを使用します。

  • /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.0
  • Microsoft.DotNet.AspNetCore.8—ASP.NET Core ランタイム 8.0
  • Microsoft.DotNet.DesktopRuntime.8—.NET デスクトップ ランタイム 8.0
  • Microsoft.DotNet.SDK.8—.NET SDK 8.0

SDK のインストール

SDK をインストールする場合、対応するランタイムをインストールする必要はありません。

  1. WinGet をインストールします

  2. PowerShell や cmd.exe などのターミナルを開きます。

  3. winget install コマンドを実行し、SDK パッケージの名前を渡します。

    winget install Microsoft.DotNet.SDK.8
    

.NET CLI の使用方法については、「.NET CLI の概要」を参照してください。

ランタイムをインストールする

インストールできるランタイムにはさまざまなものがあります。 各ランタイムに含まれる内容については、「適切なランタイムを選択する」セクションを参照してください。

  1. WinGet をインストールします

  2. PowerShellコマンド プロンプトなどのターミナルを開きます。

  3. 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 ランタイムがインストールされます。

  1. https://dot.net/v1/dotnet-install.ps1 からインストール スクリプトをダウンロードします。

  2. PowerShell を開き、スクリプトが含まれているフォルダーに移動します。

  3. 互換性を最大限に高めるために、次のコマンドを実行してデスクトップと ASP.NET Core の両方のランタイムをインストールします。

    dotnet-install.ps1 -Runtime windowsdesktop
    dotnet-install.ps1 -Runtime aspnetcore
    

.NET CLI の使用方法については、「.NET CLI の概要」を参照してください。

SDK のインストール

SDK をインストールする場合、ランタイムをインストールする必要はありません。

  1. https://dot.net/v1/dotnet-install.ps1 からインストール スクリプトをダウンロードします。

  2. PowerShell を開き、スクリプトが含まれているフォルダーに移動します。

  3. 次のコマンドを実行して、.NET SDK をインストールします。

    dotnet-install.ps1
    

    Note

    -Runtime スイッチを省略することで、SDK がインストールされます。

.NET CLI の使用方法については、「.NET CLI の概要」を参照してください。

検証

インストーラーをダウンロードした後、ファイルを検証して、変更されたり破損したりしていないことを確認します。 コンピューターでチェックサムを検証し、ダウンロード Web サイトで報告されていたものと比較できます。

公式ダウンロード ページからインストーラーまたはバイナリをダウンロードするときに、ファイルのチェックサムが表示されます。 [コピー] ボタンを選択すると、クリップボードにチェックサム値がコピーされます。

チェックサムが示された .NET ダウンロード ページ

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 インストール バイナリを検証する方法について説明しています。

  1. GitHub (https://github.com/dotnet/core/tree/main/release-notes/8.0) にある .NET 8 のリリース ノート ページには、Releases という名前のセクションが含まれています。 このセクションの表は、各 .NET 8 リリースのダウンロード ファイルとチェックサム ファイルにリンクされています。

    Github リリース ノートの .NET のバージョン表

  2. ダウンロードした .NET のバージョンのリンクを選択します。 前のセクションでは、.NET 8.0.0 リリースに含まれる .NET SDK 8.0.100 を使用しました。

    ヒント

    チェックサム ファイルが含まれている .NET リリースがわからない場合は、見つかるまでリンクを調べます。

  3. リリース ページでは、.NET ランタイムと .NET SDK のバージョン、およびチェックサム ファイルへのリンクを確認できます。

    .NET のチェックサムが示されたダウンロード表

  4. チェックサム ファイルへのリンクをコピーします。

  5. 次のスクリプトを使用しますが、リンクを置き換えて適切なチェックサム ファイルをダウンロードします。

    Invoke-WebRequest https://dotnetcli.blob.core.windows.net/dotnet/checksums/8.0.0-sha.txt -OutFile 8.0.0-sha.txt
    
  6. チェックサム ファイルと .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 が見つからない

ほとんどの場合、.NET SDK の x86 (32 ビット) と x64 (64 ビット) の両方のバージョンをインストールします。 これにより、dotnet コマンドを実行したときに競合が発生します。x64 バージョンに解決する必要があるときに x86 バージョンに解決されるためです。 この問題は、x64 バージョンを最初に解決するように %PATH% 変数を調整することによって修正されます。

  1. 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 のサポート要求のイシューを作成する必要があります

  2. [Windows] ボタンをクリックし、検索に「システム環境変数の編集」と入力します。 [システム環境変数の編集] を選びます。

    環境変数の編集を示す Windows スタート メニュー

  3. [システムのプロパティ] ウィンドウの [詳細設定] タブが表示されます。[環境変数] を選びます。

    開いている Windows [システム プロパティ] パネル

  4. [環境変数] ウィンドウの [システム変数] グループで、Path* の行を選び、[編集] ボタンを選びます。

    ユーザーとシステム変数を示す [環境変数] ウィンドウ

  5. [上へ移動] および [下へ移動] ボタンを使って、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 ビット) をインストールします。