在 macOS 上安装 .NET
本文介绍了 macOS 支持哪些版本的 .NET、如何安装 .NET,以及 SDK 和运行时之间的区别。
最新版本的 .NET 为 9。
支持的版本
下表列出了支持的 .NET 版本,以及它们支持的 macOS。 在 .NET 版本达到支持终止日期或 macOS 版本不再受支持之前,一直支持这些版本。
macOS 版本 | .NET |
---|---|
macOS 15 "Sequoia" | 9.0, 8.0 |
macOS 14“Sonoma” | 9.0, 8.0 |
macOS 13“Ventura” | 9.0, 8.0 |
以下 .NET 版本 ❌ 不再受到支持:
- .NET 7
- .NET 6
- .NET 5
- .NET Core 3.1
- .NET Core 3.0
- .NET Core 2.2
- .NET Core 2.1
- .NET Core 2.0
Runtime 或 SDK
运行时用于运行使用 .NET 创建的应用。 应用作者发布应用时,可以在其应用中包含运行时。 如果未包含运行时,则用户就需要安装正确的运行时。
可以在 macOS 上安装两个运行时,这两个运行时都包含在 SDK 中。
ASP.NET Core 运行时
运行 ASP.NET Core 应用。 包括 .NET 运行时。 不可用作安装程序。.NET 运行时
它可以运行普通的 .NET 应用,但不能运行专门的应用,如基于 ASP.NET Core 构建的应用。
SDK 用于生成和发布 .NET 应用和库。 最新的 SDK 支持为以前版本的 .NET 生成应用。 正常情况下只需要安装最新的 SDK。
安装 SDK 包括标准 .NET Runtime 和 ASP.NET Core Runtime。 例如,如果已安装 .NET SDK 9.0,则安装 .NET Runtime 9.0 和 ASP.NET Core 9.0 运行时。 但是,任何其他运行时版本都不会与 SDK 一起安装,而是需要单独进行安装。
选择如何安装 .NET
安装 .NET 的方法有很多种,有些产品可能会管理自己的 .NET 版本。 如果通过管理自己版本的 .NET 的软件安装 .NET,则可能无法在全系统范围内启用它。 确保了解通过其他软件安装 .NET 的影响。
如果在阅读了以下各部分的列表后仍不确定应该选择哪种方法,那么你可能需要使用 .NET 安装程序包。
开发人员
-
安装适用于 Visual Studio Code 的 C# 开发工具包 扩展以开发 .NET 应用。 该扩展可以使用已安装的 SDK,也可以为你安装 SDK。
用户和开发人员
-
使用独立安装程序来安装 .NET。 这种方法是在开发人员或用户计算机上安装 .NET 的典型方法。
-
一个可用于自动安装 SDK 或 Runtime 的 bash 脚本。 可以选择要安装的 .NET 版本。
-
在需要将 .NET 安装到特定文件夹并与其他 .NET 副本分开运行时,请使用这种安装方法。
安装 .NET
安装程序包适用于 macOS,是安装 .NET 的一种简便方法。
打开浏览器并导航到 https://dotnet.microsoft.com/download/dotnet 。
选择要安装的 .NET 版本链接,如 .NET 8.0。
此链接将转至包含该版本 .NET 下载链接的页面
如果要安装 SDK,请选择最新的 .NET 版本。 SDK 支持为以前版本的 .NET 生成应用。
提示
如果不确定下载哪个版本,请选择标有“最新”的版本。
本页面提供 SDK 和 Runtime 的下载链接。 可在此处下载 .NET SDK 或 .NET Runtime。
上图中突出显示了两个部分。 如果要下载 SDK,请参阅第 1 部分。 关于 .NET Runtime,请参阅第 2 部分。
第 1 部分 (SDK)
本部分是 SDK 下载区。 在 macOS 行的“安装程序”列下,列出了两个体系结构:Arm64 和 x64。
- 如果运行的是 Apple 处理器,如 M1 或 M3 Pro,请选择 Arm64。
- 如果运行的是 Intel 处理器,请选择 x64。
第 2 部分 (Runtime)
本部分包含运行时下载。 请注意,macOS 行中“安装程序”列的链接是空的! 本部分为空,因为 ASP.NET Core Runtime 仅在 SDK 中提供,或通过“二进制安装”提供。
向下滚动可找到标准 .NET Runtime 供下载。
- 如果运行的是 Apple 处理器,如 M1 或 M3 Pro,请选择 Arm64。
- 如果运行的是 Intel 处理器,请选择 x64。
下载完成后将其打开。
按照安装程序中的步骤操作。
手动安装 .NET
除了 macOS 安装程序,还可以下载并手动安装 SDK 和运行时。 手动安装通常作为持续集成方案中自动化的一部分来执行。 开发人员和用户通常希望使用“安装程序”。
打开浏览器并导航到 https://dotnet.microsoft.com/download/dotnet 。
选择要安装的 .NET 版本链接,如 .NET 8.0。
此链接将转至包含该版本 .NET 下载链接的页面
如果要安装 SDK,请选择最新的 .NET 版本。 SDK 支持为以前版本的 .NET 生成应用。
提示
如果不确定下载哪个版本,请选择标有“最新”的版本。
选择要安装的 SDK 或 Runtime 的链接。 查找 macOS 行中的“二进制文件”列。
- 如果运行的是 Apple 处理器,如 M1 或 M3 Pro,请选择 Arm64。
- 如果运行的是 Intel 处理器,请选择 x64。
打开终端并导航到下载 .NET 二进制文件的位置。
将 tarball 提取到系统中需要 .NET 的位置。 下面的示例使用“主页”目录
~/Applications/.dotnet
。mkdir -p ~/Applications/.dotnet tar -xf "dotnet-sdk-9.0.100-rc.2.24474.11-osx-arm64.tar" -C ~/Applications/.dotnet/
将目录更改为安装 .NET 的目录,然后运行 dotnet --info
命令,以便测试 .NET 是否正常工作:
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。 此外,如果尚未安装 .NET,则“C# 开发工具包”扩展将安装 .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 安装二进制文件:
GitHub 上的 .NET 8 发行说明页面 (https://github.com/dotnet/core/tree/main/release-notes/8.0#releases) 包含“版本”部分。 该部分中的表链接到每个 .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
命令来验证下载的文件。如果验证通过,会看到打印了 OK 状态的文件:
$ 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
基于 Arm 的 Mac
以下各节介绍了在基于 Arm 的 Mac 上安装 .NET 时应考虑的内容。
路径差异
在基于 Arm 的 Mac 上,所有 Arm64 版本的 .NET 都安装到正常的“/usr/local/share/dotnet/”文件夹中。 但是,当你安装 x64 版本的 .NET SDK 时,它会安装到 /usr/local/share/dotnet/x64/dotnet/ 文件夹中。
路径变量
如果同时安装了 .NET SDK 的 x64 和 Arm64 版本,则可能需要更改将 .NET 添加到系统路径的环境变量,例如 PATH
变量。 此外,一些工具依赖于DOTNET_ROOT
环境变量,此变量也需要更新以指向适当的 .NET SDK 安装文件夹。
故障排除
以下部分可帮助排除故障:
让 .NET 在系统范围内可用
有时,系统上的应用(包括终端)会需要查找 .NET 的安装位置。 .NET macOS 安装程序包会自动进行系统配置。 但是,如果使用手动安装方法或 .NET 安装脚本,则必须在 PATH
变量中添加安装 .NET 的目录。
某些应用在尝试确定 .NET 安装位置时,可能会查找 DOTNET_ROOT
变量。
有许多不同的 shell 可用于 macOS,并且每个 shell 都有不同的配置文件。 例如:
- Bash Shell:~/.profile、/etc/profile
- Korn Shell:~/.kshrc 或 .profile
- Z Shell:~/.zshrc 或 .zprofile
在 shell 配置文件中设置以下两个环境变量:
DOTNET_ROOT
此变量设置为 .NET 安装到的文件夹,如
$HOME/.dotnet
:export DOTNET_ROOT=$HOME/.dotnet
PATH
此变量应同时包含
DOTNET_ROOT
文件夹和DOTNET_ROOT/tools
文件夹:export PATH=$PATH:$DOTNET_ROOT:$DOTNET_ROOT/tools
System.Drawing.Common 和 libgdiplus
使用 System.Drawing.Common
程序集的 .NET 应用程序需要安装 libgdiplus
。
获取 libgdiplus
的简单方法是使用 MacOS 的 Homebrew ("brew") 包管理器。 安装 brew 后,在终端中运行以下命令以安装 libgdiplus
:
brew update
brew install mono-libgdiplus