共用方式為


在 macOS 上安裝 .NET

本文將介紹 macOS 支援哪些版本的 .NET、如何安裝 .NET,以及 SDK 和執行階段的差異。

.NET 的最新版為 8。

支援的版本

下表列出了支援的 .NET 版本以及支援它們的 macOS。 這些版本將繼續受到支援,直到 .NET 版本達到支援終止或 macOS 版本不再受支援。

macOS 版本 .NET
macOS 15 "Sequoia" 8.0、6.0
macOS 14 "Sonoma" 8.0、6.0
macOS 13 "Ventura" 8.0、6.0

下列版本的 .NET ❌ 已不再支援:

  • .NET 7
  • .NET 6 (自 2024 年 11 月 12 日起)
  • .NET 5
  • .NET Core 3.1
  • .NET Core 3.0
  • .NET Core 2.2
  • .NET Core 2.1
  • .NET Core 2.0

執行階段或 SDK

執行階段可用於執行使用.NET 建立的應用程式。 當應用程式作者發佈應用程式時,他們可以將執行階段包含在其應用程式中。 如果它們不包含執行階段,則由使用者安裝正確的執行階段。

您可以在 macOS 上安裝兩個執行階段,這兩者都包含在 SDK 中。

  • ASP.NET Core Runtime
    執行 ASP.NET Core 應用程式。 包含 .NET 執行階段。 不可作為安裝程式使用。

  • .NET 執行階段
    這可以執行普通的 .NET 應用程式,但不能執行專用應用程式,例如以 ASP.NET Core 為基礎建立的應用程式。

SDK 用於建置和發布 .NET 應用程式和程式庫。 最新的 SDK 支援為舊版本的 .NET 建立應用程式。 一般情況下,您只需要安裝最新的 SDK。

安裝 SDK 包括標準 .NET 執行階段和 ASP.NET Core 執行階段。 例如,如果安裝了 .NET SDK 8.0,則 .NET Runtime 8.0 和 ASP.NET Core 8.0 Runtime 都會安裝。 但是,任何其他執行階段版本都不會與 SDK 一起安裝,並且需要您單獨安裝。

選擇如何安裝 .NET

.NET 有多種安裝方法,某些產品可能會管理它們自己的 .NET 版本。 如果您透過管理自己版本的 .NET 的軟體安裝 .NET,則可能無法在全系統範圍內啟用。 請務必了解透過其他軟體安裝 .NET 的影響。

如果在查看以下部分中的清單後不確定應選擇哪種方法,您可能需要使用 .NET 安裝程式套件

開發人員

  • Visual Studio Code - C# 開發套件

    安裝適用於 Visual Studio Code 的 C# 開發套件延伸模組,以開發 .NET 應用程式。 此擴充功能可以使用已安裝的 SDK,也可以為您安裝 SDK。

使用者和開發人員

  • .NET 安裝程式

    使用獨立的安裝程式安裝 .NET。 這是在開發人員或使用者電腦上安裝 .NET 的典型方法。

  • 使用指令碼安裝 .NET

    可以自動安裝 SDK 或執行階段的 bash 指令碼。 您可以選擇要安裝的 .NET 版本。

  • 手動安裝 .NET

    當您需要將 .NET 安裝到特定資料夾,並將其與其他版本的 .NET 分開執行時,請使用此安裝方法。

安裝 .NET

安裝程式套件可用於 macOS,這是一種簡便的 .NET 安裝方式。

  1. 開啟瀏覽器並巡覽至 https://dotnet.microsoft.com/download/dotnet

  2. 選擇要安裝 .NET 版本的連結,例如 .NET 8.0

    .NET 下載網站。其上列出了版本 6.0 到 9.0 的下載連結。紅色框醒目顯示這些下載連結。

    此連結將帶您進入該版本 .NET 的下載連結頁面

    如果您要安裝 SDK,請選擇最新的 .NET 版本。 SDK 支援為舊版本的 .NET 建立應用程式。

    提示

    如果您不確定要下載哪個版本,請選擇標記為最新的版本。

  3. 此頁面提供 SDK 和執行階段的下載連結。 您可以在此下載 .NET SDK 或 .NET 執行階段。

    顯示 SDK 和執行階段下載連結的 .NET 下載網站。SDK 和執行階段標頭以紅色框醒目顯示。每個框都有一個向下的箭頭指向 macOS 區域。

    在前面的圖片中,醒目顯示了兩個區段。 如果您要下載 SDK,請參閱第 1 區段。 如果要下載 .NET 執行階段,請參閱第 2 區段。

    • 第 1 區段 (SDK)

      此區段為 SDK 下載區。 在 macOS 行的安裝程式列下,列出了兩種架構:Arm64x64

      • 如果您執行的是 Apple 處理器,例如 M1M3 Pro,請選擇 Arm64
      • 如果您執行的是 Intel 處理器,請選擇 x64
    • 第 2 區段 (執行階段)

      本區段包含執行階段下載。 請注意,macOS 行中「安裝程式」列的連結是空的! 此區段是空的,因為 ASP.NET Core 執行階段僅在 SDK 中提供,或透過二進位安裝提供。

      向下捲動以找到可供下載的標準 .NET 執行階段

      僅顯示 .NET 下載網站上的 .NET 執行階段下載表格的螢幕擷取畫面。macOS 行以紅色框醒目顯示。

      • 如果您執行的是 Apple 處理器,例如 M1M3 Pro,請選擇 Arm64
      • 如果您執行的是 Intel 處理器,請選擇 x64
  4. 下載完成後,將其開啟。

  5. 請依照安裝程式中的步驟操作。

    僅顯示 macOS 上執行的 .NET 安裝程式的螢幕擷取畫面。

手動安裝 .NET

作為 macOS 安裝程式的替代方案,您可以下載並手動安裝 SDK 和執行階段。 在持續整合情境中,手動安裝通常會作為自動化的一部分執行。 開發人員和使用者通常會希望使用安裝程式

提示

使用 install-dotnet.sh 指令碼來自動執行這些步驟。

  1. 開啟瀏覽器並巡覽至 https://dotnet.microsoft.com/download/dotnet

  2. 選擇要安裝 .NET 版本的連結,例如 .NET 8.0

    此連結將帶您進入該版本 .NET 的下載連結頁面

    如果您要安裝 SDK,請選擇最新的 .NET 版本。 SDK 支援為舊版本的 .NET 建立應用程式。

    提示

    如果您不確定要下載哪個版本,請選擇標記為最新的版本。

    .NET 下載網站。其上列出了版本 6.0 到 9.0 的下載連結。紅色框醒目顯示這些下載連結。

  3. 選擇您要安裝的 SDK 或執行階段的連結。 在 macOS 行中尋找「二進位檔案」列。

    顯示 SDK 下載連結的 .NET 下載網站。SDK 標頭以紅色框醒目顯示。框內有一個箭頭指向 macOS 區域。

    • 如果您執行的是 Apple 處理器,例如 M1M3 Pro,請選擇 Arm64
    • 如果您執行的是 Intel 處理器,請選擇 x64
  4. 打開終端機,然後瀏覽到 .NET 二進位檔下載的位置。

  5. 將 tarball 解壓縮到您希望在系統上安裝 .NET 的位置。 以下範例使用 HOME 目錄 ~/Applications/.dotnet

    mkdir -p ~/Applications/.dotnet
    tar -xf "dotnet-sdk-9.0.100-rc.2.24474.11-osx-arm64.tar" -C ~/Applications/.dotnet/
    

將目錄變更為 .NET 的安裝位置來測試 .NET 是否正常運作,然後執行 dotnet --info 命令:

chdir ~/Applications/.dotnet/
./dotnet --info

使用指令碼安裝 .NET

dotnet-install 指令碼可用於進行執行階段的自動化和無提升權限的安裝。 您可以從 https://dot.net/v1/dotnet-install.sh 下載指令碼。

根據預設,此指令碼會安裝最新的長期支援 (LTS) 版本 (亦即 .NET 8)。 您可以透過指定 channel 參數來選擇特定版本。 包含 runtime 參數以安裝執行階段。 否則,指令碼會安裝 SDK。

提示

這些命令在本程序結尾處提供了一段指令碼片段。

  1. 開啟終端機。

  2. 瀏覽至要下載指令碼的資料夾,例如 ~/Downloads

  3. 如果沒有 wget 命令,請使用 Brew 進行安裝

    brew install wget
    
  4. 執行以下命令來下載指令碼:

    wget https://dot.net/v1/dotnet-install.sh
    
  5. 授與指令碼執行權限

    chmod +x dotnet-install.sh
    
  6. 執行指令碼來安裝 .NET。

    該指令碼預設將最新的 SDK 安裝到 ~/.dotnet 目錄。

    ./dotnet-install.sh
    

以下是單一 bash 指令碼中的所有命令:

chdir ~/Downloads
brew install wget
wget https://dot.net/v1/dotnet-install.sh
chmod +x dotnet-install.sh
./dotnet-install.sh

透過瀏覽到 ~/.dotnet 資料夾並執行 dotnet --info 命令來測試 .NET:

chdir ~/.dotnet
./dotnet --info

重要

某些程式可能會使用環境變數在系統上尋找 .NET,而使用 dotnet 命令在打開新終端機時可能無法正常運作。 如需解決此問題的說明,請參閱「使 .NET 在全系統範圍內可用」區段。

安裝適用於 Visual Studio Code 的 .NET

Visual Studio Code 是一個功能強大的輕量型原始程式碼編輯器,其會在您的桌面上執行。 Visual Studio Code 可以使用您系統上已安裝的 SDK。 此外,C# Dev Kit 擴充功能將為您安裝 .NET (如果尚未安裝)。

有關透過 Visual Studio Code 安裝 .NET 的說明,請參閱「在 VS Code 中開始使用 C#」。

公證

使用開發者 ID 分發的為 macOS 建立的軟體必須經過公證,包括使用 .NET 製作的應用程式。

如果您執行未經公證的應用程式,則會顯示類似下圖的錯誤視窗:

macOS Catalina 公證警示

如需強制進行公證會對 .NET (和您的 .NET 應用程式) 產生何種影響的詳細資訊,請參閱使用 macOS Catalina 公證

驗證

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

當您從官方下載頁面下載檔案時,檔案的總和檢查碼將顯示在文字方塊中。 選取 [複製] 按鈕,將總和檢查碼值複製到剪貼簿。

具有總和檢查碼的 .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#releases 的 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. 開啟終端機。

  6. 使用 curl -O {link} 下載總和檢查碼檔案。

    將以下命令中的連結替換為您複製的連結。

    curl -O https://dotnetcli.blob.core.windows.net/dotnet/checksums/8.0.0-sha.txt
    
  7. 有了總和檢查碼檔案和下載至相同目錄的 .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
    

疑難排解

以下各區段可協助解決問題:

使 .NET 在全系統範圍內可用

有時,系統上的應用程式 (包括終端機) 需要尋找 .NET 的安裝位置。 .NET macOS 安裝程式套件應自動設定您的系統。 但是,如果您使用手動安裝方法.NET 安裝指令碼,則必須將安裝 .NET 的目錄新增至 PATH 變數。

某些應用程式在嘗試確定 .NET 的安裝位置時,可能會尋找 DOTNET_ROOT 變數。

有許多不同殼層可供 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 時應考慮的事項。

.NET 版本

下表描述 Arm 型 Mac 支援哪些版本的 .NET:

.NET 版本 SDK 執行階段 路徑衝突
8 Yes No
8 Yes
6 Yes
6 Yes No

x64 和 Arm64 版本的 .NET SDK 可彼此獨立存在。 如果發行新版本,則必須升級每個安裝。

路徑差異

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

路徑衝突

如上一節所述,x64 .NET SDK 會安裝到自己的目錄。 如此一來,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 安裝資料夾。

System.Drawing.Common 與 libgdiplus

使用 System.Drawing.Common 程式集的.NET應用程式需要安裝 libgdiplus

取得 libgdiplus 的一個簡單方法是使用 macOS 的 Homebrew ("brew") 套件管理員。 安裝 brew 後,在終端機中執行以下命令以安裝 libgdiplus

brew update
brew install mono-libgdiplus