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

この記事では、Windows に .NET をインストールする方法について説明します。 .NET は、ランタイムと SDK で構成されています。 ランタイムは .NET アプリを実行するために使用され、アプリに含まれている場合があります。 SDK は、.NET アプリとライブラリの作成に使用されます。 .NET ランタイムは、常に SDK と共にインストールされます。

.NET の最新バージョンは 8.0 です。

サポートされるリリースには、長期サポート (LTS) リリースと標準期間サポート (STS) リリースの 2 種類があります。 すべてのリリースの品質は同じです。 唯一の違いは、サポート期間の長さです。 LTS リリースでは、3 年間、無料サポートとパッチを利用できます。 STS リリースでは、18 か月間、無料サポートとパッチを利用できます。 詳細については、.NET のサポート ポリシーに関するページを参照してください。

次の表は、.NET (および .NET Core) の各バージョンのサポート状態を示しています。

✔️ サポートされている ❌ サポートされていない
8 (LTS) 5
7 (STS) 3.1
6 (LTS) 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.8

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

インストールできる .NET ランタイムは 3 つありますが、すべての種類の .NET アプリとの互換性を最大限に高めるために、.NET デスクトップ ランタイムと ASP.NET Core ランタイムの両方をインストールする必要があります。 次の表では、各ランタイムに含まれる内容について説明します。

.NET ランタイムを含む .NET デスクトップ ランタイムを含む ASP.NET Core ランタイムを含む
.NET ランタイム はい いいえ いいえ
.NET デスクトップ ランタイム はい はい いいえ
ASP.NET Core ランタイム いいえ 番号 はい

次の一覧では、各ランタイムの詳細と、それらのランタイムをインストールするための winget コマンドを示します。

  • .NET デスクトップ ランタイム

    このランタイムは、Windows Presentation Foundation (WPF) と、.NET を使って構築される Windows フォーム アプリをサポートしています。 これは、Windows に付属する .NET Framework とは異なります。 このランタイムには .NET ランタイムが含まれていますが、個別にインストールする必要がある ASP.NET Core ランタイムは含まれません。

    winget install Microsoft.DotNet.DesktopRuntime.8
    
  • .NET ランタイム

    これは基本ランタイムであり、コンソール アプリの実行に必要なコンポーネントのみが含まれています。 通常は、この代わりに .NET デスクトップ ランタイムと ASP.NET Core ランタイムの両方をインストールします。

    winget install Microsoft.DotNet.Runtime.8
    
  • ASP.NET Core ランタイム

    このランタイムは、Web サーバー アプリを実行し、多くの Web 関連 API を提供します。 ASP.NET Core ランタイムを使用すると、ランタイムを提供しない .NET を使用して作成されたアプリを実行できます。 このランタイムに加えて、.NET ランタイムをインストールする必要があります。 次のコマンドは、ASP.NET Core ランタイムをインストールします。ご利用のターミナルで、次のコマンドを実行します。

    winget install Microsoft.DotNet.AspNetCore.8
    

ランタイムのプレビュー バージョンをインストールするには、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 のサポートを簡単に追加できます。

  1. Visual Studio Code をダウンロードしてインストールします
  2. .NET SDK をダウンロードしてインストールします
  3. Visual Studio Code マーケットプレースから C# 拡張機能をインストールします

C# For Visual Studio Code 拡張機能には最新の .NET SDK が含まれており、.NET ランタイムを別途インストールする必要はありません。

Windows インストーラーを使用したインストール

インストールできる .NET ランタイムは 3 つありますが、すべての種類の .NET アプリとの互換性を最大限に高めるために、.NET デスクトップ ランタイムと ASP.NET Core ランタイムの両方をインストールする必要があります。 次の表では、各ランタイムに含まれる内容について説明します。

.NET ランタイムを含む .NET デスクトップ ランタイムを含む ASP.NET Core ランタイムを含む
.NET ランタイム はい いいえ いいえ
.NET デスクトップ ランタイム はい はい いいえ
ASP.NET Core ランタイム いいえ 番号 はい

.NET SDK では、.NET アプリを作成でき、すべてのランタイムが含まれます。

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

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

  • /install
    .NET をインストールします。

  • /quiet
    UI やプロンプトが表示されないようにします。

  • /norestart
    再起動の試行を抑制します。

dotnet-sdk-8.0.100-win-x64.exe /install /quiet /norestart

詳細については、「インストーラーの標準コマンドライン オプション」を参照してください。

ヒント

成功した場合は、インストーラーから終了コード 0 が返されます。再起動が必要であることを示す場合は、終了コード 3010 が返されます。 その他の値は通常、エラー コードです。

PowerShell オートメーションを使用してインストールする

dotnet-install スクリプトは、ランタイムの CI 自動化および管理者以外によるインストールに使用されます。 スクリプトは、dotnet-install スクリプト参照ページからダウンロードできます。

このスクリプトを使用すると、最新の長期サポート (LTS) バージョン (.NET 8) が既定でインストールされます。 Channel スイッチを指定することで、特定のリリースを選択できます。 ランタイムをインストールするには、Runtime スイッチを含めます。 それ以外の場合は、スクリプトによって SDK がインストールされます。

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

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

-Runtime スイッチを省略して SDK をインストールします。 この例では、-Channel スイッチが STS に設定されています。これによって、標準期間サポートの最新バージョン (.NET 7) がインストールされます。

dotnet-install.ps1 -Channel STS

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. [バージョン情報] ダイアログで、バージョン番号を確認します。

Visual Studio には、最新の .NET SDK とランタイムをインストールできます。

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

ワークロードを選択する

Visual Studio をインストールまたは変更するときは、ビルドするアプリケーションの種類に応じて、次の 1 つ以上のワークロードを選択します。

  • [他のツールセット] セクションの [.NET Core クロスプラットフォームの開発] ワークロード。
  • [Web クラウド] セクションの [ASP.NET と Web 開発] ワークロード。
  • [Web クラウド] セクションの [Azure の開発] ワークロード。
  • [デスクトップとモバイル] セクションの [.NET デスクトップ開発] ワークロード。

Windows Visual Studio 2019 with .NET Core workload

サポートされているリリース

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

Windows 10 のバージョンのサービス終了日は、エディションごとに分かれています。 次の表では、HomeProPro EducationPro for Workstations の各エディションだけが考慮されています。 具体的な詳細については、「Windows ライフサイクルのファクト シート」を確認してください。

ヒント

+ 記号は、最小バージョンを表します。

オペレーティング システム .NET 8 .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 8 でサポートされているオペレーティング システム、ディストリビューション、ライフサイクル ポリシーの詳細については、.NET 8 でサポートされている OS バージョンに関する記事を参照してください。

サポートされていないリリース

次のバージョンの .NET は、❌ サポート対象外となりました。

  • .NET 5
  • .NET Core 3.1
  • .NET Core 3.0
  • .NET Core 2.2
  • .NET Core 2.1
  • .NET Core 2.0

ダウンロードしたバイナリを検証する

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

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

The .NET download page with checksum

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 リリースのダウンロード ファイルとチェックサム ファイルにリンクされています。

    The github release notes version table for .NET

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

    ヒント

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

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

    The download table with checksums for .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 で作成されたアプリを実行するために使用されます。 アプリの作成者は、アプリを公開するとき、アプリにランタイムを含めることができます。 ランタイムが含まれていない場合は、ユーザーがランタイムをインストールする必要があります。

インストールできる .NET ランタイムは 3 つありますが、すべての種類の .NET アプリとの互換性を最大限に高めるために、.NET デスクトップ ランタイムと ASP.NET Core ランタイムの両方をインストールする必要があります。 次の表では、各ランタイムに含まれる内容について説明します。

.NET ランタイムを含む .NET デスクトップ ランタイムを含む ASP.NET Core ランタイムを含む
.NET ランタイム はい いいえ いいえ
.NET デスクトップ ランタイム はい はい いいえ
ASP.NET Core ランタイム いいえ 番号 はい

次の一覧に、各ランタイムに関する詳細を示します。

  • Desktop ランタイム
    Windows 用の .NET WPF と Windows フォームのデスクトップ アプリを実行します。 .NET ランタイムが含まれます。

  • ASP.NET Core ランタイム
    ASP.NET Core アプリを実行します。

  • .NET ランタイム
    このランタイムは最も単純なランタイムであり、他のランタイムは含まれていません。 .NET アプリとの互換性を最善にするにはに、"ASP.NET Core ランタイム" と "デスクトップ ランタイム" の両方をインストールしてください。

SDK に関する情報

SDK は、.NET アプリとライブラリを作成して公開するために使用されます。 SDK のインストールには、次の 3 つのランタイムが含まれます: ASP.NET Core、Desktop、.NET。

Arm ベースの Windows PC

次のセクションでは、Arm ベースの Windows PC に .NET をインストールするときに考慮する必要がある点について説明します。

サポート対象

次の表は、Arm ベースの Windows PC でサポートされている .NET のバージョンを示します。

.NET のバージョン アーキテクチャ SDK ランタイム パスの競合
8 Arm64 はい はい いいえ
8 X64 はい はい いいえ
7 Arm64 はい はい いいえ
7 X64 はい はい いいえ
6 Arm64 はい はい いいえ
6 X64 はい はい いいえ
5 Arm64 はい イエス はい
5 X64 いいえ イエス はい

.NET SDK の 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 より前の x64 SDK はサポートされておらず、Arm64 バージョンと同じ場所 (C:\Program Files\dotnet\ フォルダー) にインストールされます。 サポートされていない x64 SDK をインストールする必要がある場合は、先に Arm64 バージョンをアンインストールする必要があります。 反対も同様で、Arm64 バージョンをインストールするには、サポートされていない x64 SDK をアンインストールする必要があります。

パス変数

.NET SDK の x64 バージョンと Arm64 バージョンの両方をインストールしている場合は、システム パスに .NET を追加する環境変数 (PATH 変数など) を変更する必要がある場合があります。 また、一部のツールは DOTNET_ROOT 環境変数に依存しているため、適切な .NET SDK のインストール フォルダーを指すように更新する必要がある場合もあります。

依存関係

.NET 8 では以下の Windows のバージョンがサポートされます。

Note

+ 記号は、最小バージョンを表します。

OS バージョン アーキテクチャ
Windows 11 22000+ x64、x86、Arm64
Windows 10 クライアント 1607+ x64、x86、Arm64
Windows Server 2012+ x64、x86
Windows サーバー コア 2012+ x64、x86
Nano Server 1809+ X64

.NET 8 でサポートされているオペレーティング システム、ディストリビューション、ライフサイクル ポリシーの詳細については、.NET 8 でサポートされている 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 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 start menu with edit environment variable

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

    The Windows system properties panel open.

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

    The environment variables window with user and system variables.

  5. [上へ移動] および [下へ移動] ボタンを使って、C:\Program Files\dotnet\ エントリを C:\Program Files (x86)\dotnet\ より上に移動します。

    The environment variables list for the system.

アプリのビルドが予想よりも遅い

Windows 機能である Smart App Control がオフになっていることを確認します。 開発に使用するマシンで Smart App Control を有効にすることは推奨されません。 "オフ" 以外の設定はすべて、SDK パフォーマンスに悪影響を与える可能性があります。

次のステップ