Como remover o .NET Runtime e SDK

Com o tempo, à medida que você instala versões atualizadas do tempo de execução do .NET e do SDK, convém remover versões desatualizadas do .NET da sua máquina. A desinstalação de versões mais antigas do tempo de execução pode alterar o tempo de execução escolhido para executar aplicativos de estrutura compartilhada, conforme detalhado no artigo sobre seleção de versão do .NET.

Devo remover uma versão?

Os comportamentos de seleção de versão do .NET e a compatibilidade de tempo de execução do .NET entre atualizações permitem a remoção segura de versões anteriores. As atualizações de tempo de execução do .NET são compatíveis dentro de uma banda de versão principal, como 7.x e 6.x. Além disso, versões mais recentes do SDK do .NET geralmente mantêm a capacidade de criar aplicativos destinados a versões anteriores do tempo de execução de maneira compatível.

Em geral, você só precisa do SDK mais recente e da versão de patch mais recente dos tempos de execução necessários para seu aplicativo. As instâncias em que você pode querer manter versões mais antigas do SDK ou do tempo de execução incluem a manutenção de aplicativos baseados em project.json. A menos que seu aplicativo tenha razões específicas para SDKs ou tempos de execução anteriores, você pode remover com segurança 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 tempo de execução instaladas no seu computador. Use dotnet --list-sdks para ver a lista de SDKs instalados e dotnet --list-runtimes para a lista de tempos de execução. Para obter mais informações, consulte Como verificar se o .NET já está instalado.

Desinstalar o .NET

O .NET usa a caixa de diálogo Aplicativos do Windows & recursos para remover versões do tempo de execução e do SDK do .NET. A figura a seguir mostra a caixa de diálogo Aplicativos & recursos . Você pode pesquisar por core ou .net para filtrar e mostrar versões instaladas do .NET.

Adicionar / Remover programas para remover o .NET

Selecione as versões que deseja remover do computador e clique em Desinstalar.

A melhor maneira de desinstalar o .NET é espelhar a ação usada para instalar o .NET. As especificidades dependem da distribuição Linux escolhida e do método de instalação.

As versões de visualização são instaladas manualmente e devem ser desinstaladas manualmente. Para obter mais informações, consulte a seção Com script ou manual .

Importante

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

Você pode remover os seguintes tipos se instalações .NET:

Gestor de pacotes

Não há necessidade de primeiro desinstalar o SDK do .NET ao atualizá-lo usando um gerenciador de pacotes, a menos que você esteja atualizando a partir de uma versão de visualização que foi instalada manualmente. O gerenciador update de pacotes ou refresh comandos removerão automaticamente a versão mais antiga após a instalação bem-sucedida de uma versão mais recente. Se tiver uma versão de pré-visualização 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 tempo de execução do .NET. As instalações do .NET suportam os gerenciadores de pacotes mais populares. Consulte a documentação do gerenciador de pacotes da sua distribuição para obter a sintaxe precisa em seu ambiente:

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

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

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

Para máquinas que instalaram apenas o tempo de execução, e não o SDK, o nome do pacote é dotnet-runtime-<version> para o tempo de execução do .NET e aspnetcore-runtime-<version> para toda a pilha de tempo de execução.

Script ou manual

Se você instalou o .NET usando o script dotnet-install ou extraindo um tarball, deverá remover o .NET usando o método manual.

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

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

  • SDK:

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

  • Runtime:

    O tempo de execução é baseado em tempos de execução específicos do produto .NET, como Microsoft.AspNetCore.All ou Microsoft.NETCore.App (o tempo de execução do .NET especificamente). Eles são instalados no /usr/share/dotnet/shared/$product/$version diretório, onde $product está o tempo de execução do produto. Por exemplo, você pode 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 .NET

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

Use o rm -rf comando para remover uma versão do .NET. Por exemplo, para remover o SDK 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 você está desinstalando. Os tempos de execução individuais e SDKs que são instalados com uma única versão do .NET podem ter versões diferentes. Por exemplo, você pode ter instalado o ASP.NET Core 8 Runtime, que instalou o tempo de execução do ASP.NET Core 8.0.2 e o tempo de execução do .NET 8.0.8. Cada um tem um diretório versionado diferente. Para obter mais informações, consulte Visão geral de como o .NET é versionado.

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

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

  • SDK:

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

  • Runtime:

    O tempo de execução é baseado em tempos de execução específicos do produto .NET, como Microsoft.AspNetCore.All ou Microsoft.NETCore.App (o tempo de execução do .NET especificamente). Eles são instalados no /usr/local/share/dotnet/shared/$product/$version diretório, onde $product está o tempo de execução 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 .NET

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

Use o rm -rf comando para remover uma versão do .NET. Por exemplo, para remover o SDK 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 você está desinstalando. Os tempos de execução individuais e SDKs que são instalados com uma única versão do .NET podem ter versões diferentes. Por exemplo, você pode ter instalado o ASP.NET Core 8 Runtime, que instalou o tempo de execução do ASP.NET Core 8.0.2 e o tempo de execução do .NET 8.0.8. Cada um tem um diretório versionado diferente. Para obter mais informações, consulte Visão geral de como o .NET é versionado.

Importante

Se estiver a utilizar um Mac baseado em Arm, como um com um chip M1, reveja 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 (dotnet-core-uninstall) permite remover SDKs e tempos de execução do .NET de um sistema. Uma coleção de opções está disponível para especificar quais versões devem ser desinstaladas.

Nota

Atualmente, a ferramenta de desinstalação do .NET não suporta o .NET 8+. Para obter mais informações sobre o cronograma de lançamento da ferramenta, consulte GitHub - dotnet-uninstall-tool Roadmap.

Dependência do Visual Studio em versões do SDK do .NET

Antes do Visual Studio 2019 versão 16.3, os instaladores do Visual Studio chamavam o instalador SDK autônomo para o .NET Core versão 2.1 ou 2.2. Como resultado, as versões do SDK aparecem na caixa de diálogo Aplicativos do Windows & recursos . Remover SDKs do .NET que foram instalados pelo Visual Studio usando o instalador autônomo pode quebrar o Visual Studio. Se o Visual Studio tiver problemas depois de desinstalar SDKs, execute Reparar nessa versão específica do Visual Studio. A tabela a seguir mostra algumas das dependências do Visual Studio em versões do SDK do .NET Core:

Versão do Visual Studio Versão do SDK do .NET Core
Visual Studio 2019 versão 16.2 SDK do .NET Core 2.2.4xx, 2.1.8xx
Visual Studio 2019 versão 16.1 SDK do .NET Core 2.2.3xx, 2.1.7xx
Visual Studio 2019 versão 16.0 SDK do .NET Core 2.2.2xx, 2.1.6xx
Visual Studio 2017 versão 15.9 SDK do .NET Core 2.2.1xx, 2.1.5xx
Visual Studio 2017 versão 15.8 SDK do .NET Core 2.1.4xx

A partir do Visual Studio 2019 versão 16.3, o Visual Studio é responsável por sua própria cópia do SDK do .NET. Por esse motivo, você não vê mais essas versões do SDK na caixa de diálogo Aplicativos & recursos .

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 de pacotes NuGet. Esse cache foi usado durante operações como dotnet restore ou dotnet build /t:Restore. O NuGetFallbackFolder foi localizado na pasta sdk onde o .NET está instalado. Por exemplo, pode estar em C:\Program Files\dotnet\sdk\NuGetFallbackFolder no Windows e em /usr/local/share/dotnet/sdk/NuGetFallbackFolder no macOS.

Você pode querer remover este diretório, se:

  • Você está desenvolvendo apenas usando o SDK do .NET Core 3.0 ou o .NET 5 ou versões posteriores.
  • Você está desenvolvendo usando versões do SDK do .NET Core anteriores à 3.0, mas pode trabalhar online.

Se quiser remover o diretório de fallback do NuGet, você pode excluí-lo, mas precisará de privilégios administrativos para fazê-lo.

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

  • Você interromperá o Visual Studio 2019 versão 16.3 e versões posteriores. Você pode executar o Repair para recuperar.
  • Se houver entradas do SDK do .NET Core na caixa de diálogo Aplicativos & recursos , elas ficarão órfãs.