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

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

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

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

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

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

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

Удаление .NET

.NET использует диалоговое окно функций приложений & Windows для удаления версий среды выполнения и пакета SDK для .NET. На следующем рисунке показано диалоговое окно "Функции приложений&". Вы можете выполнить поиск по запросу core или .net, чтобы отфильтровать и вывести установленные версии .NET.

Add / Remove programs to remove .NET

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

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

Важно!

Дополнительные сведения об установке 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, установленные с одним выпуском .NET, могут иметь разные версии. Например, у вас может быть установлена среда выполнения ASP.NET Core 5, с которой установлены среда выполнения ASP.NET Core 5.0.2 и среда выполнения .NET 5.0.8. У каждой из них есть отдельная папка с соответствующей версией. Дополнительные сведения см. в статье Общие сведения об управлении версиями в .NET.

Родительские каталоги для пакета 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, установленные с .NET, могут иметь разные версии. Например, у вас может быть установлена среда выполнения .NET 5, с которой установлены среда выполнения ASP.NET Core 5.0.2 и среда выполнения .NET 5.0.8. Дополнительные сведения см. в статье Общие сведения об управлении версиями в .NET.

Важно!

Если вы используете компьютер Mac на основе ARM, например с микросхемой M1, ознакомьтесь с путями к папкам, приведенным в статье Установка .NET на компьютерах Mac с процессорами ARM.

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

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

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

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

До появления Visual Studio 2019 версии 16.3 установщики Visual Studio пользовались автономным установщиком пакета SDK для .NET Core версий 2.1 или 2.2. В результате версии пакета SDK отображаются в диалоговом окне функций приложений & Windows. Удаление пакетов SDK для .NET, установленных 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 или более поздних версий.
  • Разработка выполняется с использованием пакета SDK для .NET Core версий до 3.0, но вы можете работать в режиме "в сети".

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

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

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