在 macOS 上安裝 .NET

您將從本文了解如何在 macOS 上安裝 .NET。 .NET 是由執行階段和 SDK 所組成。 執行階段用於執行.NET 應用程式,但不一定會隨附於應用程式內。 SDK 用於建立 .NET 應用程式和程式庫。 .NET 執行階段一律會隨 SDK 一起安裝。

.NET 的最新版為 8。

支援的版本

有兩種類型的支援版本:長期支援 (LTS) 版本或標準期限支援 (STS) 版本。 所有版本的品質都一樣。 唯一的差異是支援的時間長度。 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 上安裝兩個不同的執行階段:

  • ASP.NET Core 執行階段
    執行 ASP.NET Core 應用程式。 包含 .NET 執行階段。

  • .NET 執行階段
    此執行階段是最簡單的執行階段,不包含任何其他執行階段。 強烈建議您安裝 ASP.NET Core 執行階段,以取得對 .NET 應用程式的最佳相容性。

SDK 資訊

SDK 可用於建置及發佈 .NET 應用程式和程式庫。 安裝 SDK 包含兩個執行階段:ASP.NET Core 和 .NET。

公證

從 macOS Catalina (10.15 版) 開始,所有在 2019 年 6 月 1 日後建置且以開發人員識別碼散發的軟體都必須經過公證。 此需求適用於 .NET 執行階段、.NET SDK,以及使用 .NET 建立的軟體。

自 2020 年 2 月 18 日起的.NET 的執行階段和 SDK 安裝程式都已經過公證。 先前發行的版本並未經過公證。 如果您執行未經過公證的應用程式,您將看到類似下圖的錯誤:

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 的獨立安裝程式:

手動安裝

您可以下載並手動安裝 SDK 和執行階段,來作為 .NET 的 macOS 安裝程式替代方案。 手動安裝通常會當作持續整合測試的一部分來執行。 對於開發人員或使用者,通常最好使用安裝程式

從下列其中一個網站下載適用於 SDK 或執行階段的二進位版本。 .NET SDK 包含對應的執行階段:

將下載的檔案解壓縮,並使用 export 命令來將 DOTNET_ROOT 設定為解壓縮的資料夾位置,然後確定 .NET 位於 PATH 中。 匯出 DOTNET_ROOT 使 .NET CLI 可在終端中使用。 如需 .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 版本。

您也可以將 .NET 安裝至 HOME 變數或 ~ 路徑所識別的主目錄:

export DOTNET_ROOT=$HOME/.dotnet

確認已下載二進位檔

下載安裝程序之後,請加以驗證以確認檔案尚未變更或沒有損毀。 您可以驗證電腦上的總和檢查碼,然後將它與下載網站上所報告的內容進行比較。

當您從官方下載頁面下載安裝程式或二進位檔時,會顯示該檔案的總和檢查碼。 選取 [複製] 按鈕,將總和檢查碼值複製到剪貼簿。

具有總和檢查碼的 .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. 位於 https://github.com/dotnet/core/tree/main/release-notes/8.0 的 GitHub 上的 .NET 8 版本資訊頁面包含名為版本的章節。 該章節中的資料表可連結至每個 .NET 8 版本的下載和總和檢查碼檔案:

    .NET 的 github 版本資訊版本表

  2. 選取您下載的 .NET 版本的連結。 上一節使用了 .NET SDK 8.0.100,其位於 .NET 8.0.0 版本中。

  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 命令來驗證下載的檔案。

    驗證通過時,您會看到顯示 [確定] 狀態的檔案:

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

    如果您看到檔案標示為 [失敗],則下載的檔案無效且不應加以使用。

    $ 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

在殼層設定檔中設定下列兩個環境變數:

  • 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 .是 No
8 x64 .是
7 Arm64 .是
7 x64 .是
6 Arm64 .是
6 x64 .是 No

自 .NET 6 起,x64 和 Arm64 版本的 .NET SDK 各自獨立發行。 如果發行新版本,則必須升級每個安裝。

路徑差異

在 Arm 型 Mac 上,所有 Arm64 版本的 .NET 都會安裝到一般 /usr/local/share/dotnet/ 資料夾。 不過,當您安裝 x64 版的 .NET SDK 時,會將其安裝到 /usr/local/share/dotnet/x64/dotnet/ 資料夾。

路徑衝突

如上一節所述,x64 .NET SDK 安裝程式 自 .NET 6 起會安裝到自己的目錄中。 如此一來,Arm64 和 x64 版的 .NET SDK 就能並存於同一部機器上。 不過,不支援 .NET 6 之前的任何 x64 SDK,且會將其安裝到與 Arm64 版本相同的位置:/usr/local/share/dotnet/ 資料夾。 若要安裝不受支援的 x64 SDK,您必須先解除安裝 Arm64 版本。 反之亦然,您必須先解除安裝不受支援的 x64 SDK,才能安裝 Arm64 版本。

路徑變數

如果您已同時安裝 64 和 Arm64 版的 .NET 6 SDK,則可能需要變更將 .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。 從 2024 年 8 月 31 日起,將不再支援 Visual Studio for Mac。 替代方案包括:

  • Visual Studio Code 搭配 C# 開發套件和相關延伸模組,例如 .NET MAUIUnity
  • 在 Mac 上 VM 的 Windows 上執行的 Visual Studio。
  • 雲端 VM 中的 Windows 上執行的 Visual Studio。

如需詳細資訊,請參閱 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 Marketplace 安裝 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 或執行階段) 與作業系統不同組合的映像。

Microsoft 會提供針對特定案例量身訂做的映像。 例如,ASP.NET Core 存放庫 \(英文\) 可提供為了在生產環境中執行 ASP.NET Core 應用程式而建置的映像。

如需在 Docker 容器中使用 .NET 的詳細資訊,請參閱 NET 和 Docker 簡介範例 (部分機器翻譯)。

下一步