通过


在 macOS 上安装.NET

本文介绍了 macOS 上支持哪些版本的 .NET、如何安装 .NET,以及 SDK 和运行时之间的区别。

最新版本的 .NET 为 10。

支持的版本

下表列出了受支持的.NET版本,以及受支持的 macOS 版本。 在 .NET版本达到支持终止或不再支持 macOS 版本之前,这些版本仍受支持。

macOS 版本 .NET
macOS 26 “Tahoe” 10.0, 9.0, 8.0
macOS 15 “Sequoia” 10.0, 9.0, 8.0
macOS 14“Sonoma” 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

runtime用于运行使用.NET创建的应用。 应用作者发布应用时,可以在其应用中包含运行时。 如果未包含运行时,则用户就需要安装正确的运行时。

可以在 macOS 上安装两个运行时,这两个运行时都包含在 SDK 中。

  • ASP.NET Core Runtime
    运行 ASP.NET Core应用。 包括.NET运行时。 不可用作安装程序。

  • .NET Runtime
    这会运行正常的.NET应用,但不运行专用应用,例如基于 ASP.NET Core生成的应用。

SDK用于生成和发布.NET应用和库。 最新的 SDK 支持为早期版本的.NET生成应用。 正常情况下只需要安装最新的 SDK。

安装 SDK 包括标准.NET运行时和 ASP.NET Core运行时。 例如,如果已安装 .NET SDK 9.0,则同时安装 .NET Runtime 9.0 和 ASP.NET Core 9.0 Runtime。 但是,任何其他运行时版本都不会与 SDK 一起安装,而是需要单独进行安装。

选择如何安装.NET

安装.NET的方法有所不同,某些产品可能会管理自己的.NET版本。 如果通过管理特定版本的 .NET 的软件安装 .NET,则可能无法在整个系统中启用。 请确保了解通过其他软件安装.NET的影响。

如果不确定在查看以下部分中的列表后应选择哪种方法,则可能需要使用 .NET Installer 包

开发人员

  • Visual Studio Code - C# 开发工具包

    安装 C# 开发工具包扩展,以便在 Visual Studio Code 中开发 .NET 应用。 该扩展可以使用已安装的 SDK,也可以为你安装 SDK。

用户和开发人员

  • .NET Installer

    使用独立安装程序安装.NET。 此方法是在开发人员或用户计算机上安装.NET的典型方法。

  • 使用脚本安装.NET

    一个可用于自动安装 SDK 或 Runtime 的 bash 脚本。 可以选择要安装的.NET版本。

  • 手动安装.NET

    如果需要将.NET安装到特定文件夹,并将其与其他.NET副本分开运行,请使用此安装方法。

安装.NET

安装程序包适用于 macOS,这是一种简单的安装.NET方法。

  1. 打开浏览器并导航到 https://dotnet.microsoft.com/download/dotnet

  2. 选择要安装的.NET版本的链接,例如 .NET 10.0

    .NET下载网站。列出了版本 6.0 到 9.0。红色框突出显示了这些下载链接.

    此链接带您到包含该版本 .NET 下载链接的页面。

    如果要安装 SDK,请选择最新的.NET版本。 SDK 支持为早期版本的.NET生成应用。

    提示

    如果不确定下载哪个版本,请选择标有“最新”的版本。

  3. 本页面提供 SDK 和 Runtime 的下载链接。 在此处下载 .NET SDK 或 .NET 运行时。

    显示 SDK 和运行时下载链接的.NET下载网站。SDK 和运行时标头用红色框突出显示。每个框都有一个箭头,指向 macOS section.

    上图中突出显示了两个部分。 如果要下载 SDK,请参阅第 1 部分。 有关.NET运行时,请参阅第 2 部分。

    • 第 1 部分 (SDK)

      本部分是 SDK 下载区。 在 macOS 行的“安装程序”列下,列出了两个体系结构:Arm64 和 x64

      • 如果运行的是 Apple 处理器,如 M1 或 M3 Pro,请选择 Arm64
      • 如果运行的是 Intel 处理器,请选择 x64
    • 第 2 部分 (运行时 Runtime)

      本部分包含运行时下载。 请注意,macOS 行中“安装程序”列的链接是空的! 此部分为空,因为ASP.NET Core Runtime仅在 SDK 中提供,或通过 binary 安装提供。

      向下滚动以查找要下载的标准 .NET Runtime

      一张屏幕截图,仅显示来自.NET下载网站的.NET运行时下载表,其中 macOS 行用红色框突出显示。

      • 如果运行的是 Apple 处理器,如 M1 或 M3 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 或 Runtime 的链接。 在 macOS 行中查找 二进制文件 列。

    .NET 下载网站展示了 SDK 下载链接。SDK 标头被一个红色框突出显示。该框有一个箭头,指向 macOS 部分。

    • 如果运行的是 Apple 处理器,如 M1 或 M3 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的目录并运行 dotnet --info 命令来测试.NET是否正常工作:

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# 开发工具包扩展将为你安装.NET(如果尚未安装)。

有关通过 Visual Studio Code 安装 .NET 的说明,请参阅《VS Code 中开始使用 C#》。

公证

使用开发人员 ID 分发的 macOS 软件必须进行公证,包括使用 .NET 创建的应用。

如果运行未经公证的应用,则会显示类似下图的错误窗口:

macOS Catalina 公证警报

有关强制公证如何影响.NET(和.NET应用)的详细信息,请参阅使用 macOS Catalina Notarization

验证

下载安装程序或二进制版本后,请对其进行验证,以确保文件未被更改或损坏。 可以验证计算机上的校验和,然后将其与下载网站上报告的内容进行比较。

从官方下载页下载文件时,文件的校验和会显示在文本框中。 选择“复制”按钮将校验和值复制到剪贴板。

.NET 下载页带有校验和

使用 shasum -a 512 命令来打印已下载文件的校验和。 例如,以下命令显示 dotnet-sdk-9.0.306-osx-x64.tar.gz 文件的校验和:

$ shasum -a 512 dotnet-sdk-9.0.306-osx-x64.tar.gz
a9700f98e5aa4f70b2a08ddba2b1c6085106b0d17828bd719fdcef460b06c890b32d752fbff8e4659cd1ca4174b4b211b301fe682439ea9a24b6521ca5a64c69  dotnet-sdk-9.0.306-osx-x64.tar.gz

将校验和与下载站点提供的值进行比较。

使用校验和文件进行验证

.NET发布说明中包含用于验证已下载文件的校验和文件的链接。 以下步骤介绍如何下载校验和文件并验证 .NET 安装二进制文件:

  1. https://github.com/dotnet/core/tree/main/release-notes/9.0#releases GitHub .NET 9 的发行说明页包含名为 Releases 的节。 该部分中的表格与每个 .NET 9 版本的下载文件及校验文件相链接。 下图显示了 .NET 8 版本表作为参考:

    GitHub 上 .NET 发行说明的版本表

  2. 请点击你所下载的.NET版本的链接。

    上一部分使用了 .NET SDK 9.0.306,该版本位于 .NET 9.0.10 版本中。

  3. 在发布页中,可以看到.NET运行时和.NET SDK版本,以及校验和文件的链接。 下图显示了 .NET 8 版本表作为参考:

    包含 .NET 校验和的下载表

  4. 右键单击 校验和 链接并将其复制到剪贴板。

  5. 打开终端。

  6. 使用 curl -O {link} 下载校验和文件。

    用复制的链接替换以下命令中的链接。

    curl -O https://builds.dotnet.microsoft.com/dotnet/checksums/9.0.10-sha.txt
    
  7. 将校验和文件和.NET发布文件下载到同一目录后,请使用 shasum -a 512 -c {file} 命令验证下载的文件。

    如果验证通过,会看到打印了 OK 状态的文件:

    $ shasum -a 512 -c 9.0.10-sha.txt
    dotnet-sdk-9.0.306-osx-x64.tar.gz: OK
    

    如果看到文件标记为失败,则下载的文件无效,不应使用。

    $ shasum -a 512 -c 9.0.10-sha.txt
    dotnet-sdk-9.0.306-osx-x64.tar.gz: FAILED
    shasum: WARNING: 1 computed checksum did NOT match
    

基于 Arm 的 Mac

以下部分介绍了在基于 Arm 的 Mac 上安装.NET时应考虑的事项。

路径差异

在基于 Arm 的 Mac 上,所有 arm64 版本的 .NET 都安装到普通的 /usr/local/share/dotnet/ 文件夹中。 但是,安装 .NET SDK 的 x64 版本时,它安装到 /usr/local/share/dotnet/x64/dotnet/ 文件夹中。

路径变量

如果已安装.NET SDK 的 x64 和 Arm64 版本,则向系统路径添加.NET的环境变量(如 PATH 变量)可能需要更改。 此外,某些工具依赖于 DOTNET_ROOT 环境变量,这还需要更新以指向相应的.NET SDK 安装文件夹。

故障排除

以下部分可帮助排除故障:

在系统范围内启用.NET

有时,系统上的应用(包括终端)需要查找安装.NET的位置。 .NET macOS Installer 包应自动配置系统。 但是,如果使用了 manual 安装方法.NET 安装脚本,则必须将安装.NET的目录添加到 PATH 变量。

尝试确定安装.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