在 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# 開發套件延伸模組,以開發 .NET 應用程式。 此擴充功能可以使用已安裝的 SDK,也可以為您安裝 SDK。
使用者和開發人員
-
使用獨立的安裝程式安裝 .NET。 這是在開發人員或使用者電腦上安裝 .NET 的典型方法。
-
可以自動安裝 SDK 或執行階段的 bash 指令碼。 您可以選擇要安裝的 .NET 版本。
-
當您需要將 .NET 安裝到特定資料夾,並將其與其他版本的 .NET 分開執行時,請使用此安裝方法。
安裝 .NET
安裝程式套件可用於 macOS,這是一種簡便的 .NET 安裝方式。
開啟瀏覽器並巡覽至 https://dotnet.microsoft.com/download/dotnet。
選擇要安裝 .NET 版本的連結,例如 .NET 8.0。
此連結將帶您進入該版本 .NET 的下載連結頁面
如果您要安裝 SDK,請選擇最新的 .NET 版本。 SDK 支援為舊版本的 .NET 建立應用程式。
提示
如果您不確定要下載哪個版本,請選擇標記為最新的版本。
此頁面提供 SDK 和執行階段的下載連結。 您可以在此下載 .NET SDK 或 .NET 執行階段。
在前面的圖片中,醒目顯示了兩個區段。 如果您要下載 SDK,請參閱第 1 區段。 如果要下載 .NET 執行階段,請參閱第 2 區段。
第 1 區段 (SDK)
此區段為 SDK 下載區。 在 macOS 行的安裝程式列下,列出了兩種架構:Arm64 和 x64。
- 如果您執行的是 Apple 處理器,例如 M1 或 M3 Pro,請選擇 Arm64。
- 如果您執行的是 Intel 處理器,請選擇 x64。
第 2 區段 (執行階段)
本區段包含執行階段下載。 請注意,macOS 行中「安裝程式」列的連結是空的! 此區段是空的,因為 ASP.NET Core 執行階段僅在 SDK 中提供,或透過二進位安裝提供。
向下捲動以找到可供下載的標準 .NET 執行階段。
- 如果您執行的是 Apple 處理器,例如 M1 或 M3 Pro,請選擇 Arm64。
- 如果您執行的是 Intel 處理器,請選擇 x64。
下載完成後,將其開啟。
請依照安裝程式中的步驟操作。
手動安裝 .NET
作為 macOS 安裝程式的替代方案,您可以下載並手動安裝 SDK 和執行階段。 在持續整合情境中,手動安裝通常會作為自動化的一部分執行。 開發人員和使用者通常會希望使用安裝程式。
提示
使用 install-dotnet.sh 指令碼來自動執行這些步驟。
開啟瀏覽器並巡覽至 https://dotnet.microsoft.com/download/dotnet。
選擇要安裝 .NET 版本的連結,例如 .NET 8.0。
此連結將帶您進入該版本 .NET 的下載連結頁面
如果您要安裝 SDK,請選擇最新的 .NET 版本。 SDK 支援為舊版本的 .NET 建立應用程式。
提示
如果您不確定要下載哪個版本,請選擇標記為最新的版本。
選擇您要安裝的 SDK 或執行階段的連結。 在 macOS 行中尋找「二進位檔案」列。
- 如果您執行的是 Apple 處理器,例如 M1 或 M3 Pro,請選擇 Arm64。
- 如果您執行的是 Intel 處理器,請選擇 x64。
打開終端機,然後瀏覽到 .NET 二進位檔下載的位置。
將 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。
提示
這些命令在本程序結尾處提供了一段指令碼片段。
開啟終端機。
瀏覽至要下載指令碼的資料夾,例如 ~/Downloads。
如果沒有
wget
命令,請使用 Brew 進行安裝brew install wget
執行以下命令來下載指令碼:
wget https://dot.net/v1/dotnet-install.sh
授與指令碼執行權限
chmod +x dotnet-install.sh
執行指令碼來安裝 .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 製作的應用程式。
如果您執行未經公證的應用程式,則會顯示類似下圖的錯誤視窗:
如需強制進行公證會對 .NET (和您的 .NET 應用程式) 產生何種影響的詳細資訊,請參閱使用 macOS Catalina 公證。
驗證
下載安裝程式或二進位版本後,請加以驗證以確認檔案未變更或損毀。 您可以驗證電腦上的總和檢查碼,然後將它與下載網站上所報告的內容進行比較。
當您從官方下載頁面下載檔案時,檔案的總和檢查碼將顯示在文字方塊中。 選取 [複製] 按鈕,將總和檢查碼值複製到剪貼簿。
使用 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 安裝二進位檔:
位於 https://github.com/dotnet/core/tree/main/release-notes/8.0#releases 的 GitHub 上的 .NET 8 版本資訊頁面包含名為版本的章節。 該章節中的資料表可連結至每個 .NET 8 版本的下載和總和檢查碼檔案:
選取您下載的 .NET 版本的連結。
上一節使用了 .NET SDK 8.0.100,其位於 .NET 8.0.0 版本中。
您可以在發行頁面中看到 .NET 執行階段和 .NET SDK 版本,以及前往總和檢查碼檔案的連結:
以滑鼠右鍵按一下「總和檢查碼」連結,然後將該連結複製到剪貼簿。
開啟終端機。
使用
curl -O {link}
下載總和檢查碼檔案。將以下命令中的連結替換為您複製的連結。
curl -O https://dotnetcli.blob.core.windows.net/dotnet/checksums/8.0.0-sha.txt
有了總和檢查碼檔案和下載至相同目錄的 .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