在 macOS 上安裝 .NET

在本文中,您將瞭解如何在 macOS 上安裝 .NET。 .NET 是由執行時間和 SDK 所組成。 執行時間是用來執行 .NET 應用程式,而且可能未包含在應用程式內。 SDK 可用來建立 .NET 應用程式和程式庫。 .NET 執行階段一律會隨 SDK 一起安裝。

最新版的 .NET 為 7。

支援的版本

有兩種類型的支援版本:長期支援 (LTS) 版本或標準字詞支援 (STS) 。 所有版本的品質都相同。 唯一的差異是支援長度。 LTS 版本可取得 3 年的免費支援和修補程式。 STS 版本可取得 18 個月的免費支援和修補程式。 如需詳細資訊,請參閱 .NET 支援原則

下表列出目前支援的 .NET 版本,以及支援的 macOS 版本:

作業系統 .NET 7 (STS) .NET 6 (LTS)
macOS 13.0 「Ventura」 ✔️ 7.0 ✔️ 6.0
macOS 12.0 「Montrey」 ✔️ 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 執行時間、.NET SDK 和軟體。

自 2020 年 2 月 18 日起,.NET 的執行時間和 SDK 安裝程式已經過記號。 先前發行的版本不會進行記號。 如果您執行非未記事的應用程式,您會看到類似下圖的錯誤:

macOS Catalina notarization 警示

如需強制執行-notarization 如何影響 .NET (和 .NET 應用程式) 的詳細資訊,請參閱 使用 macOS Catalina Notarization

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 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 有數個不同的殼層可供 Linux 使用,且每個殼層都有不同的設定檔。 例如:

  • Bash 殼層~/.bash_profile~/.bashrc
  • Korn Shell~/.kshrc.profile
  • Z Shell~/.zshrc.zprofile

編輯殼層的適當原始程式檔,並將 新增 :$HOME/dotnet 至現有 PATH 語句的結尾。 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 開始,.NET SDK 的 x64 和 Arm64 版本彼此獨立存在。 如果發行新版本,則必須升級每個安裝。

路徑差異

在 Arm 型 Mac 上,所有 Arm64 版本的 .NET 都會安裝到一般 /usr/local/share/dotnet/ 資料夾。 不過,當您安裝 .NET 7 SDK 的 x64 版本時,它會安裝至 /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 版本。 相反地,您也需要卸載不支援的 x64 SDK 才能安裝 Arm64 版本。

路徑變數

如果您同時安裝了 .NET 64 和 Arm64 版本的 .NET 64 SDK,則可能需要變更將 .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 Preview 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) ,而且可在.NET Docker Hub 存放庫Microsoft找到。 每個存放庫都包含您可以使用的 .NET (SDK 或執行階段) 與作業系統不同組合的映像。

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

如需在 Docker 容器中使用 .NET 的詳細資訊,請參閱.NET 和 Docker 和範例簡介。

下一步