如何删除 .NET Core 运行时和 SDKHow to remove the .NET Core Runtime and SDK

本文内容

经过一段时间后,在安装 .NET Core 运行时和 SDK 的更新版本时,用户可能需要从计算机中删除过时的 .NET Core 版本。如有关 .NET Core 版本选择的文章中详述,删除旧版运行时可能会更改为运行共享框架应用程序所选择的运行时。

是否应删除某个版本?Should I remove a version?

借助 .NET Core 版本选择行为和 .NET Core 各个更新之间的运行时兼容性,可安全地删除以前的版本。.NET Core 运行时更新在主版本“区段”(如 1.x 和 2.x)中兼容。此外,较新版本的 .NET Core SDK 通常能够以兼容的方式生成以运行时的早期版本为目标的应用程序。

通常,只需要应用程序所需的最新 SDK 和运行时的最新补丁版本。保留旧版 SDK 或运行时版本的实例包括维护基于 project.json 的应用程序。除非应用程序有需保留早期 SDK 或运行时的特定原因,否则可以安全地删除旧版本。

确定安装内容Determine what is installed

从 .NET Core 2.1 开始,.NET CLI 提供一些可用于列出计算机上安装的 SDK 和运行时版本的选项。使用 dotnet —list-sdks 查看计算机上安装的 SDK 列表。使用 dotnet —list-runtimes 查看计算机上安装的运行时列表。下文显示了 Windows、macOS 或 Linux 的典型输出:

  1. C:\> dotnet --list-sdks
  2. 2.1.200-preview-007474 [C:\Program Files\dotnet\sdk]
  3. 2.1.200-preview-007480 [C:\Program Files\dotnet\sdk]
  4. 2.1.200-preview-007509 [C:\Program Files\dotnet\sdk]
  5. 2.1.200-preview-007570 [C:\Program Files\dotnet\sdk]
  6. 2.1.200-preview-007576 [C:\Program Files\dotnet\sdk]
  7. 2.1.200-preview-007587 [C:\Program Files\dotnet\sdk]
  8. 2.1.200-preview-007589 [C:\Program Files\dotnet\sdk]
  9. 2.1.200 [C:\Program Files\dotnet\sdk]
  10. 2.1.201 [C:\Program Files\dotnet\sdk]
  11. 2.1.202 [C:\Program Files\dotnet\sdk]
  12. 2.1.300-preview2-008533 [C:\Program Files\dotnet\sdk]
  13. 2.1.300 [C:\Program Files\dotnet\sdk]
  14. 2.1.400-preview-009063 [C:\Program Files\dotnet\sdk]
  15. 2.1.400-preview-009088 [C:\Program Files\dotnet\sdk]
  16. 2.1.400-preview-009171 [C:\Program Files\dotnet\sdk]
  17. C:\> dotnet --list-runtimes
  18. Microsoft.AspNetCore.All 2.1.0-preview2-final [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
  19. Microsoft.AspNetCore.All 2.1.0 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
  20. Microsoft.AspNetCore.All 2.1.1 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
  21. Microsoft.AspNetCore.All 2.1.2 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
  22. Microsoft.AspNetCore.App 2.1.0-preview2-final [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
  23. Microsoft.AspNetCore.App 2.1.0 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
  24. Microsoft.AspNetCore.App 2.1.1 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
  25. Microsoft.AspNetCore.App 2.1.2 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
  26. Microsoft.NETCore.App 2.0.6 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  27. Microsoft.NETCore.App 2.0.7 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  28. Microsoft.NETCore.App 2.0.9 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  29. Microsoft.NETCore.App 2.1.0-preview2-26406-04 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  30. Microsoft.NETCore.App 2.1.0 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  31. Microsoft.NETCore.App 2.1.1 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  32. Microsoft.NETCore.App 2.1.2 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  1. $ dotnet --list-sdks
  2. 1.0.1 [/usr/share/dotnet/sdk]
  3. 1.0.4 [/usr/share/dotnet/sdk]
  4. 2.0.0-preview1-005977 [/usr/share/dotnet/sdk]
  5. 2.0.0-preview2-006497 [/usr/share/dotnet/sdk]
  6. 2.0.0 [/usr/share/dotnet/sdk]
  7. 2.1.4 [/usr/share/dotnet/sdk]
  8. 2.1.300-preview2-008530 [/usr/share/dotnet/sdk]
  9. 2.1.300 [/usr/share/dotnet/sdk]
  10. 2.1.301 [/usr/share/dotnet/sdk]
  11. $ dotnet --list-runtimes
  12. Microsoft.AspNetCore.All 2.1.0-preview2-final [/usr/share/dotnet/shared/Microsoft.AspNetCore.All]
  13. Microsoft.AspNetCore.All 2.1.0 [/usr/share/dotnet/shared/Microsoft.AspNetCore.All]
  14. Microsoft.AspNetCore.All 2.1.1 [/usr/share/dotnet/shared/Microsoft.AspNetCore.All]
  15. Microsoft.AspNetCore.App 2.1.0-preview2-final [/usr/share/dotnet/shared/Microsoft.AspNetCore.App]
  16. Microsoft.AspNetCore.App 2.1.0 [/usr/share/dotnet/shared/Microsoft.AspNetCore.App]
  17. Microsoft.AspNetCore.App 2.1.1 [/usr/share/dotnet/shared/Microsoft.AspNetCore.App]
  18. Microsoft.NETCore.App 1.0.4 [/usr/share/dotnet/shared/Microsoft.NETCore.App]
  19. Microsoft.NETCore.App 1.0.5 [/usr/share/dotnet/shared/Microsoft.NETCore.App]
  20. Microsoft.NETCore.App 1.1.1 [/usr/share/dotnet/shared/Microsoft.NETCore.App]
  21. Microsoft.NETCore.App 1.1.2 [/usr/share/dotnet/shared/Microsoft.NETCore.App]
  22. Microsoft.NETCore.App 2.0.0-preview1-002111-00 [/usr/share/dotnet/shared/Microsoft.NETCore.App]
  23. Microsoft.NETCore.App 2.0.0-preview2-25407-01 [/usr/share/dotnet/shared/Microsoft.NETCore.App]
  24. Microsoft.NETCore.App 2.0.0 [/usr/share/dotnet/shared/Microsoft.NETCore.App]
  25. Microsoft.NETCore.App 2.0.5 [/usr/share/dotnet/shared/Microsoft.NETCore.App]
  26. Microsoft.NETCore.App 2.1.0-preview2-26406-04 [/usr/share/dotnet/shared/Microsoft.NETCore.App]
  27. Microsoft.NETCore.App 2.1.0 [/usr/share/dotnet/shared/Microsoft.NETCore.App]
  28. Microsoft.NETCore.App 2.1.1 [/usr/share/dotnet/shared/Microsoft.NETCore.App]
  1. $ dotnet --list-sdks
  2. 1.0.1 [/usr/local/share/dotnet/sdk]
  3. 1.0.4 [/usr/local/share/dotnet/sdk]
  4. 2.0.0-preview1-005977 [/usr/local/share/dotnet/sdk]
  5. 2.0.0-preview2-006497 [/usr/local/share/dotnet/sdk]
  6. 2.0.0 [/usr/local/share/dotnet/sdk]
  7. 2.1.4 [/usr/local/share/dotnet/sdk]
  8. 2.1.300-preview2-008530 [/usr/local/share/dotnet/sdk]
  9. 2.1.300 [/usr/local/share/dotnet/sdk]
  10. 2.1.301 [/usr/local/share/dotnet/sdk]
  11. $ dotnet --list-runtimes
  12. Microsoft.AspNetCore.All 2.1.0-preview2-final [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.All]
  13. Microsoft.AspNetCore.All 2.1.0 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.All]
  14. Microsoft.AspNetCore.All 2.1.1 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.All]
  15. Microsoft.AspNetCore.App 2.1.0-preview2-final [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App]
  16. Microsoft.AspNetCore.App 2.1.0 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App]
  17. Microsoft.AspNetCore.App 2.1.1 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App]
  18. Microsoft.NETCore.App 1.0.4 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
  19. Microsoft.NETCore.App 1.0.5 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
  20. Microsoft.NETCore.App 1.1.1 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
  21. Microsoft.NETCore.App 1.1.2 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
  22. Microsoft.NETCore.App 2.0.0-preview1-002111-00 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
  23. Microsoft.NETCore.App 2.0.0-preview2-25407-01 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
  24. Microsoft.NETCore.App 2.0.0 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
  25. Microsoft.NETCore.App 2.0.5 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
  26. Microsoft.NETCore.App 2.1.0-preview2-26406-04 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
  27. Microsoft.NETCore.App 2.1.0 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
  28. Microsoft.NETCore.App 2.1.1 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]

卸载 .NET CoreUninstalling .NET Core

.NET Core 使用 Windows“添加/删除程序” 对话框来删除 .NET Core 运行时和 SDK 的版本。下图显示了“添加/删除程序” 对话框,其中包含已安装的多个版本的 .NET 运行时和 SDK。

用来删除 .NET Core 的“添加/删除程序”

选择要从计算机中删除的任何版本,然后单击“卸载” 。

Linux 还提供其他可用来卸载 .NET Core(SDK 或运行时)的选项。卸载 .NET Core 的最佳方法是镜像用来安装 .NET Core 的操作。具体取决于所选择的分发和安装方法。

重要

有关 Red Hat 安装,请参阅 Red Hat 入门指南,了解有关安装和卸载 .NET Core 的信息。

从 .NET Core 2.1 开始,使用包管理器升级时无需卸载 .NET Core SDK。包管理器 updaterefresh 命令将在成功安装较新版本后自动删除旧版本。

如果使用包管理器安装了 .NET Core,则使用同一包管理器卸载 .NET SDK 或运行时。.NET Core 安装支持最常用的包管理器。有关环境的精确语法,请查阅分发的包管理器文档:

  • apt-get(8) 由基于 Debian 的系统(包括 Ubuntu)使用。
  • yum(8) 用于 Fedora、CentOS 和 Oracle Linux。
  • zypper(8)) 用于 openSUSE 和 SUSE Linux Enterprise System (SLES)。
  • dnf(8) 用于 Fedora。几乎在所有情况下,删除包的命令都是 remove

大多数包管理器的 .NET Core SDK 安装包名称为 dotnet-sdk,后跟版本号。从 .NET Core SDK 2.1.300 版和运行时的 2.1 版开始,只需要主版本号和次版本号:例如,可将 .NET Core SDK 2.1.300 版引用为包 dotnet-sdk-2.1以前的版本则需要整个版本字符串:例如,.NET Core SDK 2.1.200 版需要 dotnet-sdk-2.1.200

对于仅安装了运行时而未安装 SDK 的计算机,.NET Core 运行时的包名称为 dotnet-runtime-<version>,整个运行时堆栈的包名称为 aspnetcore-runtime-<version>

使用包管理器卸载 SDK 时,2.0 之前的 NET Core 安装不会卸载主机应用程序。使用 apt-get,该命令为:

  1. apt-get remove dotnet-host

请注意,没有版本附加到 dotnet-host

如果使用 tarball 安装,则必须使用手动方法删除 .NET Core。

通过删除包含该版本的目录,单独删除 SDK 和运行时。例如,要删除 1.0.1 SDK 和运行时,可使用以下 bash 命令:

  1. sudo rm -rf /usr/share/dotnet/sdk/1.0.1
  2. sudo rm -rf /usr/share/dotnet/shared/Microsoft.NETCore.App/1.0.1
  3. sudo rm -rf /usr/share/dotnet/shared/Microsoft.AspNetCore.App/1.0.1
  4. sudo rm -rf /usr/share/dotnet/host/fxr/1.0.1

SDK 和运行时的父目录列在 dotnet —list-sdksdotnet —list-runtimes 命令的输出中,如上表所示。

在 Mac 上,必须通过删除包含该版本的目录,分别删除 SDK 和运行时。例如,要删除 1.0.1 SDK 和运行时,可使用以下 bash 命令:

  1. sudo rm -rf /usr/local/share/dotnet/sdk/1.0.1
  2. sudo rm -rf /usr/local/share/dotnet/shared/Microsoft.NETCore.App/1.0.1
  3. sudo rm -rf /usr/local/share/dotnet/shared/Microsoft.AspNetCore.App/1.0.1
  4. sudo rm -rf /usr/local/share/dotnet/host/fxr/1.0.1

SDK 和运行时的父目录列在 dotnet —list-sdksdotnet —list-runtimes 命令的输出中,如上表所示。