Как удалить среду выполнения .NET Core и пакет SDKHow to remove the .NET Core Runtime and SDK

По мере установки обновленных версий среды выполнения и пакета SDK .NET Core может потребоваться удалить устаревшие версии .NET Core с вашего компьютера.Over time, as you install updated versions of the .NET Core runtime and SDK, you may want to remove outdated versions of .NET Core from your machine. При удалении более ранних версий среды выполнения может измениться среда выполнения, выбранная для запуска приложений общей платформы, как описано в статье Выбор версии .NET Core.Removing older versions of the runtime may change the runtime chosen to run shared framework applications, as detailed in the article on .NET Core version selection.

Нужно ли удалять версиюShould I remove a version?

Выбор версии .NET Core и совместимость среды выполнения .NET Core для различных обновлений обеспечивает безопасное удаление предыдущих версий.The .NET Core version selection behaviors and the runtime compatibility of .NET Core across updates enables safe removal of previous versions. Обновления среды выполнения .NET Core совместимы в пределах основной версии, например 1.x или 2.x..NET Core runtime updates are compatible within a major version 'band' such as 1.x and 2.x. Кроме того, более поздние выпуски пакета SDK для .NET Core обычно позволяют создавать приложения, совместимые с предыдущими версиями среды выполнения.Additionally, newer releases of the .NET Core SDK generally maintain the ability to build applications that target previous versions of the runtime in a compatible manner.

Как правило, требуется только последняя версия пакета SDK и последняя версия исправлений для сред выполнения, необходимых для вашего приложения.In general, you only need the latest SDK and latest patch version of the runtimes required for your application. Вы можете хранить старые пакеты SDK или версии среды выполнения, например для поддержки приложений на базе project.json.Instances where you might want to keep older SDK or runtime versions include maintaining project.json-based applications. Если у приложения нет конкретных причин, по которым оно должно использовать ранние версии пакета SDK или среды выполнения, вы можете безопасно удалить старые версии.Unless your application has specific reasons for earlier SDKs or runtimes, you may safely remove older versions.

Определите компоненты, которые нужно установитьDetermine what is installed

Начиная с .NET Core 2.1 можно определить версии пакета SDK и среды выполнения, установленных на вашем компьютере, с помощью команд в .NET CLI.Starting with .NET Core 2.1, the .NET CLI has options you can use to list the versions of the SDK and runtime that are installed on your machine. Чтобы просмотреть список пакетов SDK, установленных на вашем компьютере, выполните команду dotnet --list-sdks.Use dotnet --list-sdks to see the list of SDKs installed on your machine. Чтобы просмотреть список сред выполнения, установленных на вашем компьютере, выполните команду dotnet --list-runtimes.Use dotnet --list-runtimes to see the list of runtimes installed on your machine. Дополнительные сведения см. в статье Проверка того, установлена ли платформа .NET Core.For more information, see How to check that .NET Core is already installed.

Удаление .NET CoreUninstall .NET Core

Для удаления версий среды выполнения и пакета SDK .NET Core используется диалоговое окно Программы и компоненты Windows..NET Core uses the Windows Apps & features dialog to remove versions of the .NET Core runtime and SDK. На рисунке ниже показано диалоговое окно Программы и компоненты.The following figure shows the Apps & features dialog. Вы можете выполнить поиск по запросу core sdk для фильтрации и отображения установленных версий .NET Core.You can search for core sdk to filter and show installed versions of .NET Core.

Диалоговое окно "Установка и удаление программ" для удаления .NET Core

Выберите все версии, которые необходимо удалить, и нажмите кнопку Удалить.Select any versions you want to remove from your machine and click Uninstall.

В Linux есть несколько вариантов удаления .NET Core (пакета SDK или среды выполнения).There are more options to uninstall .NET Core (either SDK or runtime) on Linux. Лучший способ удаления .NET Core — выполнить действие, противоположное тому, которое использовалось при установке .NET Core.The best way for you to uninstall .NET Core is to mirror the action you used to install .NET Core. Конкретные действия зависят от выбранного дистрибутива и метода установки.The specifics depend on your chosen distribution and the installation method.

Важно!

Сведения об установке и удалении .NET Core для систем Red Hat см. в Руководстве по началу работы с Red Hat.For Red Hat installations, consult the Red Hat Getting Started Guide for information on installing and uninstalling .NET Core.

Начиная с .NET Core 2.1 нет необходимости удалять пакет SDK для .NET Core при его обновлении с помощью диспетчера пакетов.Starting with .NET Core 2.1, there's no need to uninstall the .NET Core SDK when upgrading it using a package manager. Диспетчер пакетов update или команды refresh автоматически удалят старую версию после успешной установки более новой версии.The package manager update or refresh commands will automatically remove the older version upon the successful installation of a newer version.

Если вы установили .NET Core с помощью диспетчера пакетов, для удаления пакета SDK для .NET или среды выполнения используется тот же диспетчер пакетов.If you installed .NET Core using a package manager, you use that same package manager to uninstall .NET SDK or runtime. .NET Core поддерживает большинство популярных менеджеров пакетов..NET Core installations support most popular package managers. Точный синтаксис команды для вашей среды см. в документации по вашему дистрибутиву:Consult the documentation for your distribution's package manager for the precise syntax in your environment:

  • apt-get(8) используется в системах на основе Debian, включая Ubuntu.apt-get(8) is used by Debian based systems, including Ubuntu.
  • yum(8) используется в Fedora, CentOS и Oracle Linux.yum(8) is used on Fedora, CentOS, and Oracle Linux.
  • zypper(8) используется в openSUSE и SUSE Linux Enterprise System (SLES).zypper(8) is used on openSUSE and SUSE Linux Enterprise System (SLES).
  • dnf(8) используется в Fedora.dnf(8) is used on Fedora.

Практически во всех случаях для удаления пакета используется команда remove.In almost all cases, the command to remove a package is remove.

Для установки пакета SDK для .NET Core в большинстве диспетчеров пакетов используется имя пакета dotnet-sdk, за которым следует номер версии.The package name for the .NET Core SDK installation for most package managers is dotnet-sdk, followed by the version number. Начиная с версии 2.1.300 пакета SDK для .NET Core и версии 2.1 среды выполнения необходимы только основной номер версии и дополнительный номер версии: например, для версии 2.1.300 пакета SDK для .NET Core можно указать пакет dotnet-sdk-2.1.Starting with the version 2.1.300 of the .NET Core SDK and version 2.1 of the runtime, only the major and minor version numbers are necessary: for example, the .NET Core SDK version 2.1.300 can be referenced as the package dotnet-sdk-2.1. В предыдущих версиях необходимо указать полную строку версии, например, для версии 2.1.200 пакета SDK для .NET Core потребовалось бы указать dotnet-sdk-2.1.200.Prior versions require the entire version string: for example, dotnet-sdk-2.1.200 would be required for version 2.1.200 of the .NET Core SDK.

Для компьютеров, на которых установлена только среда выполнения без пакета SDK, используется имя пакета dotnet-runtime-<version> для среды выполнения .NET Core и aspnetcore-runtime-<version> для стека всей среды выполнения.For machines that have installed only the runtime, and not the SDK, the package name is dotnet-runtime-<version> for the .NET Core runtime, and aspnetcore-runtime-<version> for the entire runtime stack.

Для .NET Core версий ниже 2.0 ведущее приложение не удалялось при удалении пакета SDK с помощью диспетчера пакетов..NET Core installations earlier than 2.0 didn't uninstall the host application when the SDK was uninstalled using the package manager. При использовании apt-get применяется следующая команда:Using apt-get, the command is:

apt-get remove dotnet-host

Обратите внимание, что с dotnet-hostне связана версия.Note that there's no version attached to dotnet-host.

Если вы установили .NET Core из tar-архива, необходимо выполнить удаление вручную.If you installed using a tarball, you must remove .NET Core using the manual method.

На компьютерах Linux необходимо отдельно удалить пакеты SDK и среды выполнения, удаляя каталоги с версиями.On Linux, you must remove the SDKs and runtimes separately, by removing the versioned directories. При их удалении пакет SDK и среда выполнения также удаляются с диска.Removing them deletes the SDK and runtime from disk. Например, чтобы удалить пакет SDK и среду выполнения версии 1.0.1, можно использовать следующие команды Bash:For example, to remove the 1.0.1 SDK and runtime, you would use the following bash commands:

version="1.0.1"
sudo rm -rf /usr/local/share/dotnet/sdk/$version
sudo rm -rf /usr/local/share/dotnet/shared/Microsoft.NETCore.App/$version
sudo rm -rf /usr/local/share/dotnet/shared/Microsoft.AspNetCore.All/$version
sudo rm -rf /usr/local/share/dotnet/shared/Microsoft.AspNetCore.App/$version
sudo rm -rf /usr/local/share/dotnet/host/fxr/$version

Родительские каталоги для пакета SDK и среды выполнения указаны в выходных данных команд dotnet --list-sdks и dotnet --list-runtimes, как показано в приведенной выше таблице.The parent directories for the SDK and runtime are listed in the output from the dotnet --list-sdks and dotnet --list-runtimes command, as shown in the earlier table.

На компьютерах Mac необходимо отдельно удалить пакеты SDK и среды выполнения, удаляя каталоги с версиями.On Mac, you must remove the SDKs and runtimes separately, by removing the versioned directories. При их удалении пакет SDK и среда выполнения также удаляются с диска.Removing them deletes the SDK and runtime from disk. Например, чтобы удалить пакет SDK и среду выполнения версии 1.0.1, можно использовать следующие команды Bash:For example, to remove the 1.0.1 SDK and runtime, you would use the following bash commands:

version="1.0.1"
sudo rm -rf /usr/local/share/dotnet/sdk/$version
sudo rm -rf /usr/local/share/dotnet/shared/Microsoft.NETCore.App/$version
sudo rm -rf /usr/local/share/dotnet/shared/Microsoft.AspNetCore.All/$version
sudo rm -rf /usr/local/share/dotnet/shared/Microsoft.AspNetCore.App/$version
sudo rm -rf /usr/local/share/dotnet/host/fxr/$version

Родительские каталоги для пакета SDK и среды выполнения указаны в выходных данных команд dotnet --list-sdks и dotnet --list-runtimes, как показано в приведенной выше таблице.The parent directories for the SDK and runtime are listed in the output from the dotnet --list-sdks and dotnet --list-runtimes command, as shown in the earlier table.

Средство удаления .NET Core.NET Core Uninstall Tool

Средство удаления .NET Core (dotnet-core-uninstall) позволяет удалять пакеты SDK и среды выполнения .NET Core из системы.The .NET Core Uninstall Tool (dotnet-core-uninstall) lets you remove .NET Core SDKs and runtimes from a system. Указать удаляемые версии можно с помощью ряда параметров.A collection of options is available to specify which versions should be uninstalled.

Зависимость Visual Studio от версий пакетов SDK для .NET CoreVisual Studio dependency on .NET Core SDK versions

До появления Visual Studio 2019 версии 16.3, установщики Visual Studio пользовались автономным установщиком пакета SDK для .NET Core.Before Visual Studio 2019 version 16.3, Visual Studio installers called the standalone .NET Core SDK installer. В результате версии пакета SDK отображаются в диалоговом окне Windows Программы и компоненты.As a result, the SDK versions appear in the Windows Apps & features dialog. Удаление пакетов SDK для .NET Core, установленных Visual Studio с помощью автономного установщика, может нарушить работу Visual Studio.Removing .NET Core SDKs that were installed by Visual Studio using the standalone installer may break Visual Studio. Если после удаления пакетов SDK в Visual Studio возникают проблемы, запустите "Восстановление" для этой конкретной версии Visual Studio.If Visual Studio has problems after you uninstall SDKs, run Repair on that specific version of Visual Studio. В следующей таблице показаны некоторые зависимости Visual Studio от пакета SDK для версий .NET Core.The following table shows some of the Visual Studio dependencies on .NET Core SDK versions:

Версия Visual StudioVisual Studio version Версия пакета SDK для .NET Core.NET Core SDK version
Visual Studio 2019 версии 16.2Visual Studio 2019 version 16.2 пакет SDK для NET Core 2.2.4xx, 2.1.8xx.NET Core SDK 2.2.4xx, 2.1.8xx
Visual Studio 2019 версии 16.1Visual Studio 2019 version 16.1 пакет SDK для .NET Core 2.2.3xx, 2.1.7xx.NET Core SDK 2.2.3xx, 2.1.7xx
Visual Studio 2019 версии 16.0Visual Studio 2019 version 16.0 пакет SDK для .NET Core 2.2.2xx, 2.1.6xx.NET Core SDK 2.2.2xx, 2.1.6xx
Visual Studio 2017 версии 15.9Visual Studio 2017 version 15.9 Пакет SDK для .NET Core 2.2.1xx, 2.1.5xx.NET Core SDK 2.2.1xx, 2.1.5xx
Visual Studio 2017 версии 15.8Visual Studio 2017 version 15.8 Пакет SDK для .NET Core 2.1.4xx.NET Core SDK 2.1.4xx

Visual Studio 2019 версии 16.3 и выше управляет собственной копией пакета SDK для .NET Core.Starting with Visual Studio 2019 version 16.3, Visual Studio is in charge of its own copy of the .NET Core SDK. По этой причине вы больше не встретите эти версии пакета SDK в диалоговом окне Программы и компоненты.For that reason, you no longer see those SDK versions in the Apps & features dialog.

Удаление резервной папки NuGetRemove the NuGet fallback folder

До создания пакета SDK для версии .NET Core 3.0 установщики пакета SDK для .NET Core использовали папку NuGetFallbackFolder для хранения кэша пакетов NuGet.Before .NET Core 3.0 SDK, the .NET Core SDK installers used a folder named NuGetFallbackFolder to store a cache of NuGet packages. Этот кэш использовался во время таких операций, как dotnet restore или dotnet build /t:Restore.This cache was used during operations such as dotnet restore or dotnet build /t:Restore. NuGetFallbackFolder находится в папке C:\Program Files\dotnet\sdk в Windows и /usr/local/share/dotnet/sdk — в macOS.The NuGetFallbackFolder is located at C:\Program Files\dotnet\sdk on Windows and at /usr/local/share/dotnet/sdk on macOS.

Вы можете удалить эту папку, если:You may want to remove this folder, if:

  • Разработка выполняется только с использованием пакета SDK для .NET Core 3.0 или более поздних версий.You're only developing using .NET Core 3.0 SDK or later versions.
  • Разработка выполняется с использованием пакета SDK для .NET Core версий до 3.0, но вы можете работать в режиме "в сети".You're developing using .NET Core SDK versions earlier than 3.0, but you can work online.

Если необходимо, вы можете удалить резервную папку NuGet, но для этого вам понадобятся права администратора.If you want to remove the NuGet fallback folder, you can delete it, but you'll need admin privileges to do so.

Не рекомендуется удалять папку dotnet.It's not recommended to delete the dotnet folder. Это приведет к удалению всех ранее установленных глобальных средств.Doing so would remove any global tools you've previously installed. Также, в Windows:Also, on Windows:

  • Работа Visual Studio 2019 версии 16.3 и более поздних версий будет нарушена.You'll break Visual Studio 2019 version 16.3 and later versions. Для восстановления можно запустить Восстановление.You can run Repair to recover.
  • Если в диалоговом окне Программы и компоненты есть записи пакета SDK для .NET Core, они будут потеряны.If there are .NET Core SDK entries in the Apps & features dialog, they'll be orphaned.