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

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

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

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

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

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

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

Удаление .NET

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

Диалоговое окно

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

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

Предварительные версии устанавливаются вручную и должны быть удалены вручную. Дополнительные сведения см. в разделе "Скрипты" или "Вручную ".

Внимание

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

При установке .NET можно удалить следующие типы:

Диспетчер пакетов

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

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

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

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

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

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

Скрипты или вручную

Если вы установили .NET с помощью скрипта dotnet-install или извлекаете tarball, необходимо удалить .NET с помощью ручного метода.

При установке .NET вручную он обычно устанавливается в /usr/share/dotnet//usr/lib/dotnet/каталог или $HOME/.dotnet каталог. Узел SDK, среды выполнения и .NET устанавливаются в отдельные вложенные каталоги. Эти каталоги component содержат каталог для каждой версии .NET. Удалив версии каталогов, вы удалите эту версию .NET из системы. Эти каталоги могут различаться в зависимости от дистрибутива Linux.

Существует три команды, которые можно использовать для обнаружения места установки .NET: dotnet --list-sdks для пакетов SDK, dotnet --list-runtimes для сред выполнения и dotnet --info для всего. Эти команды не перечисляют узел .NET. Чтобы определить, какие узлы установлены, проверка /usr/share/dotnet/host/fxr/ каталоге. Следующий список представляет каталоги определенной версии .NET, где $version переменная представляет версию .NET:

  • Пакет SDK:

    /usr/share/dotnet/sdk/$version/

  • Среда выполнения.

    Среда выполнения основана на конкретных средах выполнения продукта .NET, таких как Microsoft.AspNetCore.All или Microsoft.NETCore.App (среда выполнения .NET специально). Они устанавливаются в /usr/share/dotnet/shared/$product/$version каталог, где $product находится среда выполнения продукта. Например, могут отображаться следующие каталоги:

    /usr/share/dotnet/shared/Microsoft.NETCore.App/$version/
    /usr/share/dotnet/shared/Microsoft.AspNetCore.App/$version/
    /usr/share/dotnet/shared/Microsoft.AspNetCore.All/$version/
    
  • Узел .NET

    /usr/share/dotnet/host/fxr/$version/

rm -rf Используйте команду, чтобы удалить версию .NET. Например, чтобы удалить пакет SDK 6.0.406, выполните следующую команду:

sudo rm -rf /usr/share/dotnet/sdk/6.0.406

Внимание

Каталоги версий могут не совпадать с "версией", которую вы удаляете. Отдельные среды выполнения и пакеты SDK, установленные с одним выпуском .NET, могут иметь разные версии. Например, возможно, вы установили ASP.NET Core 8 Runtime, которая установила среду выполнения 8.0.2 ASP.NET Core и среду выполнения 8.0.8 .NET. У каждого из них есть другой каталог с версиями. Дополнительные сведения см. в статье Общие сведения об управлении версиями в .NET.

При установке .NET вручную он обычно устанавливается в /usr/local/share/dotnet/ каталог или $HOME/.dotnet каталог. Узел SDK, среды выполнения и .NET устанавливаются в отдельные вложенные каталоги. Эти каталоги component содержат каталог для каждой версии .NET. Удалив версии каталогов, вы удалите эту версию .NET из системы. Эти каталоги могут отличаться в зависимости от версии macOS.

Существует три команды, которые можно использовать для обнаружения места установки .NET: dotnet --list-sdks для пакетов SDK, dotnet --list-runtimes для сред выполнения и dotnet --info для всего. Эти команды не перечисляют узел .NET. Чтобы определить, какие узлы установлены, проверка /usr/local/share/dotnet/host/fxr/ каталоге. Следующий список представляет каталоги определенной версии .NET, где $version переменная представляет версию .NET:

  • Пакет SDK:

    /usr/local/share/dotnet/sdk/$version/

  • Среда выполнения.

    Среда выполнения основана на конкретных средах выполнения продукта .NET, таких как Microsoft.AspNetCore.All или Microsoft.NETCore.App (среда выполнения .NET специально). Они устанавливаются в /usr/local/share/dotnet/shared/$product/$version каталог, где $product находится среда выполнения продукта. Например, можно увидеть следующие каталоги:

    /usr/local/share/dotnet/shared/Microsoft.NETCore.App/$version/dotnet --info
    /usr/local/share/dotnet/shared/Microsoft.AspNetCore.App/$version/
    /usr/local/share/dotnet/shared/Microsoft.AspNetCore.All/$version/
    
  • Узел .NET

    /usr/local/share/dotnet/host/fxr/$version/

rm -rf Используйте команду, чтобы удалить версию .NET. Например, чтобы удалить пакет SDK 6.0.406, выполните следующую команду:

sudo rm -rf /usr/local/share/dotnet/sdk/6.0.406

Внимание

Каталоги версий могут не совпадать с "версией", которую вы удаляете. Отдельные среды выполнения и пакеты SDK, установленные с одним выпуском .NET, могут иметь разные версии. Например, возможно, вы установили ASP.NET Core 8 Runtime, которая установила среду выполнения 8.0.2 ASP.NET Core и среду выполнения 8.0.8 .NET. У каждого из них есть другой каталог с версиями. Дополнительные сведения см. в статье Общие сведения об управлении версиями в .NET.

Внимание

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

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

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

Примечание.

В настоящее время средство удаления .NET не поддерживает .NET 8+. Дополнительные сведения о расписании выпуска средства см. в разделе GitHub — dotnet-uninstall-tool Roadmap.

Зависимость 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 находится в папке пакета SDK, в которой установлена .NET. Например, это может быть в C:\Program Files\dotnet\sdk\NuGetFallbackFolder в Windows и по адресу /usr/local/share/dotnet/sdk/NuGetFallbackFolder в macOS.

Возможно, вы хотите удалить этот каталог, если:

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

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

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

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