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

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

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

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

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

次の表は、現在サポートされている .NET リリースと、それらがサポートされている macOS のバージョンの一覧です。

オペレーティング システム .NET 7 (STS) .NET 6 (LTS)
macOS 13.0 "Ventura" ✔️ 7.0 ✔️ 6.0
macOS 12.0 "Monterey" ✔️ 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 7 のインストールに使用できるスタンドアロン インストーラーがあります。

手動でダウンロードしてインストールする

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

まず、次のいずれかのサイトから SDK またはランタイムのバイナリ リリースをダウンロードします。 .NET SDK をインストールする場合、対応するランタイムをインストールする必要はありません。

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

あるいは、.NET バイナリのダウンロード後、ランタイムを抽出する目的でファイルが保存されるディレクトリから次のコマンドを実行できます。 これによってまた、.NET CLI コマンドがターミナルで使用できるようになり、必須の環境変数が設定されます。 DOTNET_FILE 値は必ず、ダウンロードしたバイナリの名前に変更してください

DOTNET_FILE=dotnet-sdk-7.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

ヒント

上記の export コマンドを使用すると、それを実行したターミナル セッションでのみ .NET CLI コマンドを使用できるようになります。

シェル プロファイルを編集して、コマンドを永続的に追加することができます。 Linux ではさまざまなシェルを使用でき、それぞれに異なるプロファイルがあります。 次に例を示します。

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

シェルの適切なソース ファイルを編集し、既存の PATH ステートメントの末尾に :$HOME/dotnet を追加します。 PATH ステートメントが含まれていない場合は、export PATH=$PATH:$HOME/dotnet を含む新しい行を追加します。

また、ファイルの末尾に export DOTNET_ROOT=$HOME/dotnet を追加します。

この方法では、別々の場所に異なるバージョンをインストールして、どのアプリケーションにどれを使用するかを明示的に選択できます。

Arm ベースの Mac

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

サポートされる操作

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

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

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

パスの違い

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

パスの競合

.NET 6 以降では、前のセクションで説明したように、 x64 .NET SDK は独自のディレクトリにインストールされます。 これにより、Arm64 バージョンと x64 バージョンの .NET SDK を同じコンピューター上に存在できます。 ただし、.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 2019 for Mac をインストールする」を参照してください。

.NET SDK バージョン Visual Studio のバージョン
7.0 Visual Studio 2022 for Mac 17.4 以降。
6.0 Visual Studio 2022 for Mac プレビュー 3 17.0 以降。
3.1 Visual Studio 2019 for Mac バージョン 8.4 以降。

.NET ワークロードが選択されている macOS Visual Studio 2019 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 6) が既定でインストールされます。 channel スイッチを指定することで、特定のリリースを選択できます。 ランタイムをインストールするには、runtime スイッチを含めます。 それ以外の場合は、スクリプトによって SDK がインストールされます。

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

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

次のステップ