Compartilhar via


Como remover o SDK e o runtime do .NET

Ao longo do tempo, ao instalar as versões atualizadas do runtime e do SDK do .NET, convém remover as versões desatualizadas do .NET do computador. A desinstalação de versões mais antigas do runtime pode alterar o runtime escolhido para executar os aplicativos de estrutura compartilhada, conforme detalhado no artigo Seleção da versão do .NET.

Devo remover uma versão?

Os comportamentos de seleção de versão do .NET e a compatibilidade do runtime do .NET entre as atualizações permitem a remoção segura das versões anteriores. As atualizações de runtime do .NET são compatíveis com uma banda de versão principal, como 8.x e 7.x. Além disso, as versões mais recentes do SDK do .NET geralmente mantêm a capacidade de compilar aplicativos destinados a versões anteriores do runtime de um modo compatível.

Em geral, você precisa apenas do SDK mais recente e da versão de patch mais recente dos runtimes necessários para seu aplicativo. As instâncias em que convém manter as versões mais antigas do SDK ou do runtime incluem a manutenção de aplicativos baseados no project.json. A menos que seu aplicativo tenha motivos específicos para runtimes ou SDKs anteriores, você pode remover com segurança as versões mais antigas.

Determinar o que está instalado

A CLI do .NET tem opções que você pode usar para listar as versões do SDK e do runtime que estão instaladas no computador. Use dotnet --list-sdks para ver a lista de SDKs instalados e dotnet --list-runtimes para ver a lista de runtimes. Para obter mais informações, confira Como verificar se o .NET já está instalado.

Desinstalar o .NET

O .NET usa a página de configurações Aplicativos e recursos ou Aplicativos > Aplicativos instalados do Windows para remover versões do runtime e do SDK do .NET. Use o Menu Iniciar para procurar Adicionar ou Remover Programas para abrir a página de configurações, conforme ilustrado pela imagem a seguir: a figura mostra o diálogo Aplicativos e recursos. Você pode procurar core ou .net para filtrar e mostrar as versões instaladas do .NET.

O Menu Iniciar do Windows mostrando o texto Adicionar ou Remover para filtrar os resultados da pesquisa

Na página de configurações, procure .net para encontrar as versões instaladas em seu computador. Selecione ...>Desinstalar para desinstalar o item. Se você estiver usando o Windows 10, selecione o botão Desinstalar para o item que deseja desinstalar. A imagem a seguir mostra a página de configurações Aplicativos Instalados no Windows 11:

O diálogo Aplicativos Instalados do Windows com a palavra

Importante

Se o item que você está desinstalando indicar que ele é do Visual Studio, use o Instalador do Visual Studio para remover essas versões do .NET.

A melhor maneira de desinstalar o .NET é espelhar a ação que você usou para instalar o .NET. As especificações dependem da distribuição do Linux escolhida e do método de instalação.

As versões prévias são instaladas manualmente e também devem ser desinstaladas dessa maneira. Para saber mais, confira a seção Manual ou via script.

Importante

Para instalações do Red Hat, confira a Documentação do produto Red Hat para .NET.

É possível remover os seguintes tipos em instalações do .NET:

Gerenciador de pacotes

Não é necessário desinstalar o SDK do .NET primeiro ao atualizá-lo usando um gerenciador de pacotes, a menos que você esteja atualizando uma versão prévia que foi instalada manualmente. Os comandos update ou refresh do gerenciador de pacotes removerão automaticamente a versão mais antiga após a instalação bem-sucedida de uma versão mais recente. Se você tiver uma versão prévia instalada, desinstale-a.

Se você instalou o .NET usando um gerenciador de pacotes, use esse mesmo gerenciador de pacotes para desinstalar o SDK ou o runtime do .NET. As instalações do .NET dão suporte aos gerenciadores de pacotes mais populares. Confira a documentação do gerenciador de pacotes da sua distribuição para saber qual é a sintaxe exata no seu ambiente:

  • apt-get(8) é usado por sistemas baseados em Debian, incluindo o Ubuntu.
  • O yum(8) é usado no Fedora, CentOS Stream, Oracle Linux e RHEL.
  • zypper(8) é usado no openSUSE e no SLES (SUSE Linux Enterprise System).
  • dnf(8) é usado no Fedora.

Em quase todos os casos, o comando para remover um pacote é remove.

O nome do pacote da instalação do SDK do .NET na maioria dos gerenciadores de pacotes é dotnet-sdk, seguido pelo número de versão. Somente os números de versão principal e secundária são necessários: por exemplo, o SDK do .NET versão 8.0.200 pode ser referenciado como o pacote dotnet-sdk-8.0.

Para computadores que têm apenas o runtime instalado, sem o SDK, o nome do pacote é dotnet-runtime-<version>, para o runtime do .NET, e aspnetcore-runtime-<version>, para a pilha de runtime inteira.

Manual ou via script

Se você instalar o .NET usando o script dotnet-install ou extraindo um tarball, será necessário removê-lo por meio do método manual.

Ao instalar o .NET manualmente, a instalação geralmente ocorre no diretório /usr/share/dotnet/, /usr/lib/dotnet/ ou $HOME/.dotnet. O SDK, o runtime e o host do .NET são instalados em subdiretórios separados. Esses diretórios de "componentes" contêm um diretório para cada versão do .NET. Ao remover os diretórios com versão, você remove essa versão do .NET do sistema. Esses diretórios podem variar dependendo da distribuição do Linux.

É possível usar três comandos para descobrir onde o .NET está instalado: dotnet --list-sdks para SDKs, dotnet --list-runtimes para runtimes e dotnet --info para tudo. Esses comandos não listam o host do .NET. Para determinar quais hosts estão instalados, verifique o diretório /usr/share/dotnet/host/fxr/. A seguinte lista representa os diretórios de uma versão específica do .NET, em que a variável $version representa a versão do .NET:

  • SDK:

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

  • Runtime:

    O runtime é baseado em runtimes de produto específicos do .NET, como Microsoft.AspNetCore.All ou Microsoft.NETCore.App (especificamente, o runtime do .NET). Eles são instalados no diretório /usr/share/dotnet/shared/$product/$version, em que $product é o runtime do produto. Por exemplo, é possível ver os seguintes diretórios:

    /usr/share/dotnet/shared/Microsoft.NETCore.App/$version/
    /usr/share/dotnet/shared/Microsoft.AspNetCore.App/$version/
    /usr/share/dotnet/shared/Microsoft.AspNetCore.All/$version/
    
  • Host do .NET

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

Use o comando rm -rf para remover uma versão do .NET. Por exemplo, para remover o SDK da 6.0.406, execute o seguinte comando:

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

Importante

Os diretórios de versão podem não corresponder à "versão" que está sendo desinstalada. Os runtimes e SDKs individuais que são instalados com uma única versão do .NET podem ter versões diferentes. Por exemplo, você pode ter instalado o Runtime 8 do ASP.NET Core, que instalou o runtime 8.0.2 do ASP.NET Core e o runtime 8.0.8 do .NET. Há diretórios com versão distintos para cada. Para obter mais informações, confira Visão geral de como o .NET faz o controle de versão.

Quando você instala manualmente o .NET, ele geralmente é instalado no diretório /usr/local/share/dotnet/ ou $HOME/.dotnet. O SDK, o runtime e o host .NET são instalados em subdiretórios separados. Esses diretórios de "componentes" contêm um diretório para cada versão do .NET. Ao remover os diretórios com versão, você remove essa versão do .NET do sistema. Esses diretórios podem variar dependendo da sua versão do macOS.

É possível usar três comandos para descobrir onde o .NET está instalado: dotnet --list-sdks para SDKs, dotnet --list-runtimes para runtimes e dotnet --info para tudo. Esses comandos não listam o host do .NET. Para determinar quais hosts estão instalados, verifique o diretório /usr/local/share/dotnet/host/fxr/. A seguinte lista representa os diretórios de uma versão específica do .NET, em que a variável $version representa a versão do .NET:

  • SDK:

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

  • Runtime:

    O runtime é baseado em runtimes de produto específicos do .NET, como Microsoft.AspNetCore.All ou Microsoft.NETCore.App (especificamente, o runtime do .NET). Eles são instalados no diretório /usr/local/share/dotnet/shared/$product/$version, em que $product é o runtime do produto. Por exemplo, você pode ver os seguintes diretórios:

    /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/
    
  • Host do .NET

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

Use o comando rm -rf para remover uma versão do .NET. Por exemplo, para remover o SDK da 6.0.406, execute o seguinte comando:

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

Importante

Os diretórios de versão podem não corresponder à "versão" que está sendo desinstalada. Os runtimes e SDKs individuais que são instalados com uma única versão do .NET podem ter versões diferentes. Por exemplo, você pode ter instalado o Runtime 8 do ASP.NET Core, que instalou o runtime 8.0.2 do ASP.NET Core e o runtime 8.0.8 do .NET. Há diretórios com versão distintos para cada. Para obter mais informações, confira Visão geral de como o .NET faz o controle de versão.

Importante

Se você estiver usando um Mac baseado em Arm, como um com um chip M1, confira os caminhos de diretório descritos em Instalar o .NET em Macs baseados em Arm.

Ferramenta de Desinstalação do .NET

A Ferramenta de desinstalação do .NET permite remover SDKs e runtimes do .NET de um sistema. Uma coleção de opções está disponível para especificar quais versões devem ser desinstaladas. Para obter mais informações, consulte Visão geral da ferramenta de desinstalação do .NET.

Remover o diretório de fallback do NuGet

Antes do SDK do .NET Core 3.0, os instaladores do SDK do .NET Core usavam um diretório chamado NuGetFallbackFolder para armazenar um cache dos pacotes do NuGet. Esse cache era usado durante operações como dotnet restore ou dotnet build /t:Restore. O NuGetFallbackFolder estava na pasta sdk em que o .NET era instalado. Por exemplo, eles podem estar em C:\Program Files\dotnet\sdk\NuGetFallbackFolder no Windows e em /usr/local/share/dotnet/sdk/NuGetFallbackFolder no macOS.

É possível remover esse diretório nos seguintes casos:

  • Estiver desenvolvendo usando o SDK do .NET Core 3.0 ou do .NET 5 e versões posteriores.
  • Estiver desenvolvendo usando versões do SDK do .NET Core anteriores à 3.0, mas puder trabalhar online.

Se você deseja remover o diretório de fallback do NuGet, será possível excluí-lo, mas serão necessários privilégios de administrador para isso.

Não é recomendado excluir o diretório dotnet. Isso removeria todas as ferramentas globais já instaladas. Além disso, no Windows:

  • Você interromperia o Visual Studio 2019 versão 16.3 e versões posteriores. Nesse caso, você poderá executar Repair para recuperá-lo.
  • Se houver entradas do SDK do .NET Core na caixa de diálogo Aplicativos e recursos, elas ficarão órfãs.