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

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

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

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

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

次のテーブルに、現在サポートされている .NET リリースと、それらがサポートされている macOS のバージョンの一覧を示します:

オペレーティング システム .NET 8 (LTS) .NET 7 (STS) .NET 6 (LTS)
macOS 14.0 "Sonoma" ✔️ 8.0 ✔️ 7.0 ✔️ 6.0
macOS 13.0 "Ventura" ✔️ 8.0 ✔️ 7.0 ✔️ 6.0
macOS 12.0 "Monterey" ✔️ 8.0 ✔️ 7.0 ✔️ 6.0
macOS 11.0 "Big Sur" ✔️ 7.0 ✔️ 6.0
macOS 10.15 "Catalina" ✔️ 7.0 ✔️ 6.0

.NET バージョンとそのサポート ライフ サイクルの完全な一覧については、「.NET サポート ポリシー」を参照してください。

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

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

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

ランタイムに関する情報

ランタイムは、.NET で作成されたアプリを実行するために使用されます。 アプリの作成者は、アプリを公開するとき、アプリにランタイムを含めることができます。 ランタイムが含まれていない場合は、ユーザーがランタイムをインストールする必要があります。

macOS には、2 つの異なるランタイムをインストールできます。

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

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

SDK に関する情報

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

公証

macOS Catalina (バージョン 10.15) 以降では、2019 年 6 月 1 日より後に作成され、Developer ID と共に配布されたすべてのソフトウェアは公証される必要があります。 この要件は、.NET ランタイム、.NET SDK、および .NET を使用して作成されたソフトウェアに適用されます。

.NET のランタイムと SDK のインストーラーは、2020 年 2 月 18 日から公証されています。 それより前にリリースされたバージョンは、公証されていません。 公証されていないアプリを実行すると、次のイメージのようなエラーが表示されます。

macOS Catalina の公証に関するアラート

公証の強制が .NET (および .NET アプリ) に与える影響の詳細については、macOS Catalina の公証への対応に関するページを参照してください。

libgdiplus

System.Drawing.Common アセンブリを使用する .NET アプリケーションの場合は、libgdiplus をインストールする必要があります。

libgdiplus を取得する簡単な方法は、macOS の Homebrew ("brew") パッケージ マネージャーを使用することです。 brew をインストールしたら、端末 (コマンド) プロンプトで次のコマンドを実行して libgdiplus をインストールします。

brew update
brew install mono-libgdiplus

自動インストール

macOS には、.NET のインストールに使用できるスタンドアロン インストーラが用意されています。

手動インストール

.NET 用 macOS インストーラーの代わりに、SDK とランタイムをダウンロードして手動でインストールすることもできます。 手動インストールは、通常、継続的インテグレーション テストの一環として実行されます。 開発者またはユーザーの場合、通常はインストーラーを使用することをお勧めします。

次のいずれかのサイトから SDK またはランタイムのバイナリ リリースをダウンロードします。 .NET SDK には、対応するランタイムが含まれています。

ダウンロードしたファイルを抽出し、抽出されたフォルダーの場所に export コマンドで DOTNET_ROOT を設定してから、.NET が PATH に含まれていることを確認します。 DOTNET_ROOT をエクスポートすると、.NET CLI コマンドがターミナルで使用できるようになります。 .NET 環境変数の詳細については、「.NET SDK と CLI 環境変数」を参照してください。

さまざまなバージョンの .NET を同じフォルダーに抽出できます。これらは横に並んで共存します。

次のコマンドでは、Bash を使用して環境変数 DOTNET_ROOT を現在の作業ディレクトリに設定し、その後に .dotnet を設定しています。 そのディレクトリが存在しない場合は作成されます。 DOTNET_FILE 環境変数は、インストールする .NET バイナリ リリースのファイル名です。 このファイルは、DOTNET_ROOT ディレクトリに抽出されます。 DOTNET_ROOT ディレクトリとその tools サブディレクトリの両方が PATH 環境変数に追加されます。

重要

これらのコマンドを実行する場合は、DOTNET_FILE 値を、ダウンロードした .NET バイナリの名前に必ず変更してください。

DOTNET_FILE=dotnet-sdk-8.0.100-osx-x64.tar.gz
export DOTNET_ROOT=$(pwd)/.dotnet

mkdir -p "$DOTNET_ROOT" && tar zxf "$DOTNET_FILE" -C "$DOTNET_ROOT"

export PATH=$PATH:$DOTNET_ROOT

複数のバージョンの .NET を同じフォルダーにインストールできます。

HOME 変数または ~ パスで識別されるホーム ディレクトリに .NET をインストールすることもできます。

export DOTNET_ROOT=$HOME/.dotnet

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

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

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

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

sha512sum コマンドを使用して、ダウンロードしたファイルのチェックサムを出力します。 たとえば、次のコマンドでは、dotnet-sdk-8.0.100-linux-x64.tar.gz ファイルのチェックサムを報告します。

$ sha512sum dotnet-sdk-8.0.100-linux-x64.tar.gz
13905ea20191e70baeba50b0e9bbe5f752a7c34587878ee104744f9fb453bfe439994d38969722bdae7f60ee047d75dda8636f3ab62659450e9cd4024f38b2a5  dotnet-sdk-8.0.100-linux-x64.tar.gz

このチェックサムとダウンロード サイトで提供された値を比較します。

重要

これらの例では Linux ファイルが表示されていますが、この情報は macOS にも同様に適用されます。

チェックサム ファイルを使用して検証する

.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 を使用しました。

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

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

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

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

    curl -O https://dotnetcli.blob.core.windows.net/dotnet/checksums/8.0.0-sha.txt
    
  6. 同じディレクトリにダウンロードされたチェックサム ファイルと .NET リリース ファイルの両方を使用して、sha512sum -c {file} --ignore-missing コマンドを使ってダウンロードしたファイルを検証します。

    検証に合格すると、OK の状態で出力されたファイルが表示されます。

    $ sha512sum -c 8.0.0-sha.txt --ignore-missing
    dotnet-sdk-8.0.100-linux-x64.tar.gz: OK
    

    FAILED とマークされたファイルが表示された場合、ダウンロードしたファイルは無効であり、使用できません。

    $ sha512sum -c 8.0.0-sha.txt --ignore-missing
    dotnet-sdk-8.0.100-linux-x64.tar.gz: FAILED
    sha512sum: WARNING: 1 computed checksum did NOT match
    sha512sum: 8.0.0-sha.txt: no file was verified
    

環境変数をシステム全体に設定する

手動インストールの例のセクションの手順を使用した場合、変数セットは現在のターミナル セッションにのみ適用されます。 それらをシェル プロファイルに追加します。 macOS ではさまざまなシェルを使用でき、それぞれに異なるプロファイルがあります。 次に例を示します。

  • Bash シェル: ~/.profile/etc/profile
  • Korn シェル: ~/.kshrc または .profile
  • Z シェル: ~/.zshrc または .zprofile

シェル プロファイルに次の 2 つの環境変数を設定します。

  • DOTNET_ROOT

    この変数は、.NET をインストールした先のフォルダーに設定されます ($HOME/.dotnet など)。

    export DOTNET_ROOT=$HOME/.dotnet
    
  • PATH

    この変数には、DOTNET_ROOT フォルダーと DOTNET_ROOT/tools フォルダーの両方を含める必要があります。

    export PATH=$PATH:$DOTNET_ROOT:$DOTNET_ROOT/tools
    

Arm ベースの Mac

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

サポートされている機能

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

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

.NET 6 以降、.NET SDK の x64 バージョンと Arm64 バージョンは、相互に独立して存在します。 新しいバージョンがリリースされた場合は、各インストールをアップグレードする必要があります。

パスの違い

Arm ベースの Mac では、Arm64 バージョンのすべての .NET が、通常の /usr/local/share/dotnet/ フォルダーにインストールされます。 ただし、x64 バージョンの .NET SDK をインストールすると、/usr/local/share/dotnet/x64/dotnet/ フォルダーにインストールされます。

パスの競合

.NET 6 以降、x64 .NET SDK は、前のセクションで説明したように、独自のディレクトリにインストールされます。 これにより、.NET SDK の Arm64 バージョンと x64 バージョンが同じマシンに存在するようになります。 ただし、.NET 6 より前の x64 SDK はサポートされておらず、Arm64 バージョンと同じ場所 (/usr/local/share/dotnet/ フォルダー) にインストールされます。 サポートされていない x64 SDK をインストールする必要がある場合は、先に Arm64 バージョンをアンインストールする必要があります。 反対も同様で、Arm64 バージョンをインストールするには、サポートされていない x64 SDK をアンインストールする必要があります。

パス変数

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

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

Visual Studio for Mac を使用し、.NET ワークロードを選択すると、.NET SDK がインストールされます。 macOS で .NET の開発を始めるには、「Visual Studio 2022 for Mac をインストールする」を参照してください。

重要

Visual Studio for Mac は廃止されます。 詳細については、「Visual Studio for Mac で行われること」を参照してください。

.NET SDK バージョン Visual Studio のバージョン
8.0 Visual Studio 2022 for Mac 17.6.1 以降 (プレビュー機能としてのみ使用できます)。
7.0 Visual Studio 2022 for Mac 17.4 以上。
6.0 Visual Studio 2022 for Mac 17.0 以降。

.NET ワークロードが選択されている macOS Visual Studio 2022 for Mac。

重要

Microsoft は、Visual Studio for Mac の提供終了を発表しました。 Visual Studio for Mac は、2024 年 8 月 31 日でサポートが終了します。 代替手段は次のとおりです。

詳細については、「Visual Studio for Mac 提供終了のお知らせ」を参照してください。

Visual Studio Code と共にインストールする

Visual Studio Code は、デスクトップ上で動作する強力で軽量なソース コード エディターです。 Visual Studio Code は、Windows、macOS、Linux で利用できます。

Visual Studio Code には、Visual Studio のような自動化された .NET インストーラーは付属していませんが、.NET のサポートを簡単に追加できます。

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

bash オートメーションを使用したインストール

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

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

次のコマンドは、互換性を最大限に高めるために ASP.NET Core ランタイムをインストールします。 ASP.NET Core ランタイムには、標準の .NET ランタイムも含まれています。

./dotnet-install.sh --channel 8.0 --runtime aspnetcore

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 の概要」とサンプルページを参照してください。

次のステップ