通过 Snap 安装 .NET 运行时

本文介绍了如何安装 .NET 运行时 Snap 包。 .NET 运行时 snap 包由 Canonical 提供和维护。 对于内置于 Linux 发行版的包管理器而言,Snap 是一种很好的替代方法。

Snap 是应用及其依赖项的捆绑包,可在多个不同的 Linux 发行版中正常运行。 可以从 Snap Store 中发现和安装 Snap。 有关 Snap 的更多信息,请参阅快速入门教程

注意

.NET 的 Snap 安装可能会遇到运行 .NET 工具的问题。 如果要使用 .NET 工具,建议使用 dotnet-install 脚本或特定 Linux 发行版的包管理器来安装 .NET。

先决条件

  • 支持 Snap 的 Linux 发行版。
  • snapd Snap 守护程序。

你的 Linux 发行版可能已经包含 Snap。 尝试在终端中运行 snap 以查看命令能否工作。 有关支持 Snap 的 Linux 发行版列表以及有关如何安装 Snap 的说明,参见安装snapd部分。

.NET 版本

Microsoft 以两种不同的支持策略 (LTS) 和标准期限支持 (STS) 发布 .NET。 所有版本的质量都是一样的。 唯一的区别是支持的时间长短。 LTS 版本可获得为期三年的免费支持和补丁。 STS 版本可获得 18 个月的免费支持和修补程序。 有关详细信息,请参阅 .NET 支持策略

Microsoft 目前支持的 .NET 版本包括:

  • 9.0 (STS)- 支持将于 2026 年 5 月结束
  • 8.0 (LTS),支持将于 2026 年 11 月 10 日结束。

生成和发布 .NET 的其他实体可能会引入不同的支持策略。 务必向他们了解 .NET 的支持方式。

1.安装运行时

重要

.NET 9 于 2024 年 11 月 12 日发布。 包管理器源或特定 Linux 分发版可能需要一段时间才能将其包含在包管理器源中。

以下步骤安装 .NET 9 运行时快照包:

  1. 打开终端。

  2. 使用 snap install 安装 .NET 运行时 Snap 包。 例如,以下命令可以安装 .NET 8 运行时。

    sudo snap install dotnet-runtime-80
    

每个 .NET 运行时作为单独的 Snap 包发布。 下表列出了包:

.NET 版本 Snap 包 Microsoft 支持的 .NET 版本
9 (STS) 目前不可用
8 (LTS) dotnet-runtime-80
7 (STS) dotnet-runtime-70
6 (LTS) dotnet-runtime-60
5 dotnet-runtime-50
3.1 dotnet-runtime-31
3.0 dotnet-runtime-30
2.2 dotnet-runtime-22
2.1 dotnet-runtime-21

2.启用 dotnet 命令

安装 .NET 运行时 Snap 包后, dotnet 命令不会自动配置。 执行 snap alias 命令以便能在终端中使用 dotnet 命令。 此命令的格式为 sudo snap alias {package}.{command} {alias}。 以下示例映射了 dotnet 命令:

sudo snap alias dotnet-runtime-90.dotnet dotnet

3.导出安装位置

DOTNET_ROOT 环境变量经常被工具用来确定 .NET 的安装位置。 通过 Snap 安装 .NET 时,不配置此环境变量。 应在配置文件中配置 DOTNET_ROOT 环境变量。 Snap 的路径采用以下格式:/snap/{package}/current。 例如,如果你安装了 dotnet-runtime-90 Snap,则使用以下命令将环境变量设置为 .NET 所在的位置:

export DOTNET_ROOT=/snap/dotnet-runtime-90/current

永久导出环境变量

前面的 export 命令只为运行它的终端会话设置环境变量。

你可以编辑 shell 配置文件,永久地添加这些命令。 Linux 提供了许多不同的 shell,每个都有不同的配置文件。 例如:

  • Bash Shell:~/.bash_profile、~/.bashrc
  • Korn Shell:~/.kshrc 或 .profile
  • Z Shell:~/.zshrc 或 .zprofile

为 shell 编辑相应的源文件并添加 export DOTNET_ROOT=/snap/dotnet-runtime-90/current

故障排除

dotnet 终端命令不起作用

Snap 包可以将别名映射到该包提供的命令。 .NET 运行时 Snap 包不会自动别名 dotnet 命令。 要将 dotnet 命令别名为 Snap 包,请使用以下命令:

sudo snap alias dotnet-runtime-90.dotnet dotnet

dotnet-runtime-90 替换为运行时包的名称。

无法在 WSL2 上安装 Snap

必须先在 WSL2 实例上启用 systemd,然后才能安装 Snap。

  1. 在你选择的文本编辑器中打开 /etc/wsl.conf

  2. 粘贴以下配置:

    [boot]
    systemd=true
    
  3. 保存文件并通过 PowerShell 重启 WSL2 实例。 使用 wsl.exe --shutdown 命令。

4.使用 .NET CLI

打开终端并键入 dotnet

dotnet

将显示类似于下面的输出:

Usage: dotnet [options]
Usage: dotnet [path-to-application]

Options:
  -h|--help         Display help.
  --info            Display .NET information.
  --list-sdks       Display the installed SDKs.
  --list-runtimes   Display the installed runtimes.

path-to-application:
  The path to an application .dll file to execute.

要了解如何使用 .NET CLI,请参阅 .NET CLI 概述