Удаление среды выполнения .NET и пакета SDK

По мере установки обновленных версий среды выполнения и пакета SDK .NET может потребоваться удалить устаревшие версии .NET с вашего компьютера. При удалении более ранних версий среды выполнения может измениться среда выполнения, выбранная для запуска приложений общей платформы, как описано в статье Выбор версии .NET.

Нужно ли удалять версию

Выбор версии .NET и совместимость среды выполнения .NET для различных обновлений обеспечивает безопасное удаление предыдущих версий. Обновления среды выполнения .NET совместимы в пределах основной версии, например 1.x или 2.x. Кроме того, более поздние выпуски пакета SDK для .NET обычно позволяют создавать приложения, совместимые с предыдущими версиями среды выполнения.

Как правило, требуется только последняя версия пакета SDK и последняя версия исправлений для сред выполнения, необходимых для вашего приложения. Вы можете хранить старые пакеты SDK или версии среды выполнения, например для поддержки приложений на базе project.json. Если у приложения нет конкретных причин, по которым оно должно использовать ранние версии пакета SDK или среды выполнения, вы можете безопасно удалить старые версии.

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

Можно определить версии пакета SDK и среды выполнения, установленных на вашем компьютере, с помощью команд в .NET CLI. Чтобы просмотреть список пакетов SDK, установленных на вашем компьютере, выполните команду dotnet --list-sdks. Чтобы просмотреть список сред выполнения, установленных на вашем компьютере, выполните команду dotnet --list-runtimes. Дополнительные сведения см. в статье Проверка того, установлена ли платформа .NET.

Удаление .NET

Для удаления версий среды выполнения и пакета SDK .NET используется диалоговое окно Программы и компоненты Windows. На рисунке ниже показано диалоговое окно Программы и компоненты. Вы можете выполнить поиск по запросу core sdk или .net sdk для фильтрации и отображения установленных версий .NET.

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

Выберите все версии, которые необходимо удалить, и нажмите кнопку Удалить.

В Linux есть несколько вариантов удаления .NET (пакета SDK или среды выполнения). Лучший способ удаления .NET — выполнить действие, противоположное тому, которое использовалось при установке .NET. Конкретные действия зависят от выбранного дистрибутива и метода установки.

Важно!

Дополнительные сведения об установке Red Hat см. в документации по Red Hat для .NET.

Нет необходимости удалять пакет SDK для .NET при его обновлении с помощью диспетчера пакетов, если только не выполняется обновление с предварительной версии. Диспетчер пакетов update или команды refresh автоматически удалят старую версию после успешной установки более новой версии. Если у вас установлена предварительная версия, удалите ее.

Если вы установили .NET с помощью диспетчера пакетов, для удаления пакета SDK для .NET или среды выполнения используется тот же диспетчер пакетов. .NET поддерживает большинство популярных менеджеров пакетов. Точный синтаксис команды для вашей среды см. в документации по вашему дистрибутиву:

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

Практически во всех случаях для удаления пакета используется команда remove.

Для установки пакета SDK для .NET в большинстве диспетчеров пакетов используется имя пакета dotnet-sdk, за которым следует номер версии. Начиная с версии 2.1.300 пакета SDK для .NET и версии 2.1 среды выполнения необходимы только основной номер версии и дополнительный номер версии: например, для версии 2.1.300 пакета SDK для .NET можно указать пакет dotnet-sdk-2.1. В предыдущих версиях необходимо указать полную строку версии, например, для версии 2.1.200 пакета SDK для .NET потребовалось бы указать dotnet-sdk-2.1.200.

Для компьютеров, на которых установлена только среда выполнения без пакета SDK, используется имя пакета dotnet-runtime-<version> для среды выполнения .NET и aspnetcore-runtime-<version> для стека всей среды выполнения.

Совет

Для .NET Core версий ниже 2.0 ведущее приложение не удалялось при удалении пакета SDK с помощью диспетчера пакетов. При использовании apt-get применяется следующая команда:

apt-get remove dotnet-host

Обратите внимание, что с dotnet-host не связана версия.

Если вы установили .NET из tar-архива, необходимо выполнить удаление вручную.

На компьютерах Linux необходимо отдельно удалить пакеты SDK и среды выполнения, удаляя каталоги с версиями. Эти каталоги могут различаться в зависимости от дистрибутива Linux. При их удалении пакет SDK и среда выполнения также удаляются с диска. Например, чтобы удалить пакет SDK и среду выполнения версии 1.0.1, можно использовать следующие команды Bash:

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

Родительские каталоги для пакета SDK и среды выполнения указаны в выходных данных команд dotnet --list-sdks и dotnet --list-runtimes, как показано в приведенной выше таблице.

На компьютерах Mac необходимо отдельно удалить пакеты SDK и среды выполнения, удаляя каталоги с версиями. При их удалении пакет SDK и среда выполнения также удаляются с диска. Например, чтобы удалить пакет SDK и среду выполнения версии 1.0.1, можно использовать следующие команды Bash:

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, как показано в приведенной выше таблице.

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

Средство удаления .NET (dotnet-core-uninstall) позволяет удалять пакеты SDK и среды выполнения .NET из системы. Указать удаляемые версии можно с помощью ряда параметров.

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

До появления Visual Studio 2019 версии 16.3, установщики Visual Studio пользовались автономным установщиком пакета SDK для .NET Core. В результате версии пакета SDK отображаются в диалоговом окне Windows Программы и компоненты. Удаление пакетов SDK для .NET Core, установленных Visual Studio с помощью автономного установщика, может нарушить работу Visual Studio. Если после удаления пакетов SDK в Visual Studio возникают проблемы, запустите "Восстановление" для этой конкретной версии Visual Studio. В следующей таблице показаны некоторые зависимости Visual Studio от пакета SDK для версий .NET Core.

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

Visual Studio 2019 версии 16.3 и выше управляет собственной копией пакета SDK для .NET. По этой причине вы больше не встретите эти версии пакета SDK в диалоговом окне Программы и компоненты.

Удаление резервной папки NuGet

До создания пакета SDK для версии .NET Core 3.0 установщики пакета SDK для .NET Core использовали папку NuGetFallbackFolder для хранения кэша пакетов NuGet. Этот кэш использовался во время таких операций, как dotnet restore или dotnet build /t:Restore. NuGetFallbackFolder находится в папке C:\Program Files\dotnet\sdk в Windows и /usr/local/share/dotnet/sdk — в macOS.

Вы можете удалить эту папку, если:

  • Разработка выполняется только с использованием пакета SDK для .NET Core 3.0 или .NET 5.0 или более поздних версий.
  • Разработка выполняется с использованием пакета SDK для .NET Core версий до 3.0, но вы можете работать в режиме "в сети".

Если необходимо, вы можете удалить резервную папку NuGet, но для этого вам понадобятся права администратора.

Не рекомендуется удалять папку dotnet. Это приведет к удалению всех ранее установленных глобальных средств. Также, в Windows:

  • Работа Visual Studio 2019 версии 16.3 и более поздних версий будет нарушена. Для восстановления можно запустить Восстановление.
  • Если в диалоговом окне Программы и компоненты есть записи пакета SDK для .NET Core, они будут потеряны.