本文讨论如何在 Ubuntu 22.04 上安装 .NET;支持 .NET 6 和 .NET 7。

如果要开发 .NET 应用,请安装 SDK(包括运行时)。 或者,如果只需运行应用程序,请安装运行时。 如果要安装该运行时,建议安装 ASP.NET Core 运行时,因为它同时包括 .NET 和 ASP.NET Core 运行时。

使用 dotnet --list-sdks dotnet --list-runtimes 命令查看安装的版本。 有关详细信息,请参阅 如何检查是否已安装 .NET

仅在 x64 体系结构上支持包管理器安装。 对于 Arm 等其他体系结构,必须通过其他一些方式安装 .NET,例如,通过 Snap 和安装程序脚本进行安装,或通过手动提取二进制文件进行安装。

有关在不使用包管理器的情况下安装 .NET 的详细信息,请参阅以下文章之一:

  • 或者,通过 install-dotnet 脚本安装 .NET。
  • 手动安装 .NET
  • .NET 在 Ubuntu 包源 以及 Microsoft 包存储库中可用。 但是,应仅使用其中一种来安装 .NET。 如果要使用 Microsoft 包存储库,请参阅 如何注册 Microsoft 包存储库

    支持的版本

    Ubuntu 22.04 支持或适用以下版本的 .NET:

    支持的 .NET 版本 在 Ubuntu 源中可用 在 Microsoft 源中可用

    Canonical 提供的 .NET SDK 版本始终位于 .1xx 功能区段 。 如果要使用较新的功能区段版本,请使用 Microsoft 源安装 SDK 。 请务必查看 Linux 上的 .NET 包混合 一文中的信息,了解在存储库源之间切换的含义。

    如果 Ubuntu 版本 不受支持,则该版本不再支持 .NET。

    以下 .NET 版本 ❌ 不再受到支持:

  • .NET 5
  • .NET Core 3.1
  • .NET Core 3.0
  • .NET Core 2.2
  • .NET Core 2.1
  • .NET Core 2.0
  • 安装 .NET

    安装 SDK

    .NET SDK 使你可以通过 .NET 开发应用。 如果安装 .NET SDK,则无需安装相应的运行时。 若要安装 .NET SDK,请运行以下命令:

    sudo apt-get update && \
      sudo apt-get install -y dotnet-sdk-7.0
    

    如果收到类似于“找不到包 dotnet-sdk-7.0”的错误消息,请参阅故障排除部分。

    安装运行时

    通过 ASP.NET Core 运行时,可以运行使用 .NET 开发且未提供运行时的应用。 以下命令将安装 ASP.NET Core 运行时,这是与 .NET 最兼容的运行时。 在终端中,运行以下命令:

    sudo apt-get update && \
      sudo apt-get install -y aspnetcore-runtime-7.0
    

    如果收到类似于“找不到包 aspnetcore-runtime-7.0”的错误消息,请参阅故障排除部分。

    作为 ASP.NET Core 运行时的一种替代方法,你可以安装不包含 ASP.NET Core 支持的 .NET 运行时:将上一命令中的 aspnetcore-runtime-7.0 替换为 dotnet-runtime-7.0

    sudo apt-get install -y dotnet-runtime-7.0
    

    如何安装其他版本

    Ubuntu 源不支持其他版本的 .NET。 请改用 Microsoft 包存储库。

    如果在安装甚至运行 .NET 时遇到问题,请参阅故障排除

    使用包管理器进行安装时,将为你安装这些库。 但是,如果手动安装 .NET 或发布自包含的应用,则需要确保已安装以下库:

  • libc6
  • libgcc1
  • libgcc-s1
  • libgssapi-krb5-2
  • libicu70
  • liblttng-ust1
  • libssl3
  • libstdc++6
  • libunwind8
  • zlib1g
  • 如果 .NET 应用使用 System.Drawing.Common 程序集,则还需要安装 libgdiplus。 由于 Linux 上不再支持 System.Drawing.Common,因此这仅适用于 .NET 6,并且需要设置 System.Drawing.EnableUnixSupport 运行时配置开关。

    可以通过将 Mono 存储库添加到系统来安装最新版 libgdiplus。

  • 如何为 .NET CLI 启用 Tab 自动补全
  • 教程:使用 Visual Studio Code 通过 .NET SDK 创建控制台应用程序
  •