Come rimuovere il runtime e l'SDK .NET

Nel corso del tempo, via via che si installano le versioni aggiornate di runtime e SDK di .NET l'utente potrebbe voler rimuovere le versioni obsolete di .NET dal computer. La disinstallazione delle versioni precedenti del runtime può cambiare il runtime scelto per eseguire le applicazioni di framework condiviso, come descritto in dettaglio nell'articolo Scelta della versione di .NET.

Stabilire se è necessario rimuovere una versione

La selezione delle versioni di .NET e la compatibilità di runtime di .NET tra gli aggiornamenti consente la rimozione sicura delle versioni precedenti. Gli aggiornamenti al runtime di .NET sono compatibili all'interno di una fascia di versioni principali, ad esempio 7.x e 6.x. Inoltre, le nuove versioni di .NET SDK mantengono in genere la possibilità di creare applicazioni destinate a versioni precedenti del runtime in modo compatibile.

In generale, sono necessari solo l'SDK più recente e l'ultima versione patch dei runtime richiesti per l'applicazione. Le istanze in cui si vogliono mantenere le versioni precedenti dell'SDK o del runtime includono le applicazioni basate su project.json. Se l'applicazione non ha ragioni specifiche per mantenere le versioni precedenti di SDK o Runtime, è possibile rimuovere le versioni precedenti in modo sicuro.

Determinare che cosa è installato

La CLI di .NET include opzioni che puoi usare per elencare le versioni di SDK e runtime installate nel computer. Usa dotnet --list-sdks per visualizzare l'elenco degli SDK installati e dotnet --list-runtimes per l'elenco dei runtime. Per altre informazioni, vedi Come verificare che .NET sia già installato.

Disinstallare .NET

.NET usa la finestra di dialogo App e funzionalità di Windows per rimuovere le versioni di runtime e SDK di .NET. La figura seguente mostra la finestra di dialogo App e funzionalità . Puoi cercare core o .net per filtrare e visualizzare le versioni installate di .NET.

Aggiungere/rimuovere programmi per rimuovere .NET

Seleziona tutte le versioni da rimuovere dal computer e fai clic su Disinstalla.

Il modo migliore per disinstallare .NET è eseguire il mirroring dell'azione usata per installare .NET. Le specifiche variano in base alla distribuzione Linux scelta e al metodo di installazione.

Le versioni di anteprima vengono installate manualmente e devono essere disinstallate manualmente. Per altre informazioni, consulta la sezione Con script o manuale.

Importante

Per le installazioni Red Hat, consulta la documentazione di prodotto Red Hat per .NET.

Se esegui l'installazione di .NET, puoi rimuovere i tipi seguenti:

Strumento di gestione pacchetti

Non è necessario disinstallare prima l’SDK .NET durante l'aggiornamento con una gestione pacchetti, a meno che non si stia eseguendo l'aggiornamento da una versione di anteprima installata manualmente. La gestione pacchetti o i comandi update o refresh rimuoveranno automaticamente la versione precedente al termine dell'installazione di una versione più recente. Se hai installato una versione di anteprima, procedi a disinstallarla.

Se hai installato .NET usando uno strumento di gestione pacchetti, usa la stessa gestione pacchetti per la disinstallazione dell'SDK o runtime .NET. Le installazioni di .NET supportano gli strumenti di gestione pacchetti più diffusi. Consulta la documentazione relativa alla gestione pacchetti della tua distribuzione per l'esatta sintassi nel tuo ambiente:

  • apt-get(8) viene usato dai sistemi basati su Debian, tra cui Ubuntu.
  • yum(8) viene usato in Fedora, CentOS, Oracle Linux e RHEL.
  • zypper(8) viene usato in openSUSE e SUSE Linux Enterprise System (SLES).
  • dnf(8) viene usato in Fedora.

Nella quasi totalità dei casi, il comando per rimuovere un pacchetto è remove.

Il nome del pacchetto per l'installazione di .NET SDK per la maggior parte degli strumenti di gestione pacchetti è dotnet-sdk, seguito dal numero di versione. Sono necessari solo i numeri di versione principale e secondaria: ad esempio, .NET SDK versione 8.0.200 può essere fatto riferimento come pacchetto dotnet-sdk-8.0.

Per i computer su cui è installato solo il runtime e non l'SDK, il nome del pacchetto è dotnet-runtime-<version> per il runtime di .NET e aspnetcore-runtime-<version> per lo stack di runtime intero.

Con script o manuale

Se .NET è stato installato usando lo script dotnet-install o estraendo un file tarball, è necessario rimuovere .NET usando il metodo manuale.

Quando si installa manualmente .NET, viene in genere installato nella directory /usr/share/dotnet/, /usr/lib/dotnet/o $HOME/.dotnet. L'SDK, il runtime e l'host .NET vengono installati in sottodirectory separate. Queste directory "component" contengono una directory per ogni versione di .NET. Rimuovendo le directory con la versione, rimuoverai tale versione di .NET dal sistema. Queste directory possono variare a seconda della distribuzione Linux.

Sono disponibili tre comandi che puoi usare per individuare dove è installato .NET: dotnet --list-sdks per gli SDK, dotnet --list-runtimes per i runtime e dotnet --info per tutti gli elementi. Questi comandi non elencano l'host .NET. Per determinare quali host sono installati, controlla la directory /usr/share/dotnet/host/fxr/. L'elenco seguente rappresenta le directory di una versione specifica di .NET, dove la variabile $version rappresenta la versione di .NET:

  • SDK:

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

  • Runtime:

    Il runtime si basa su specifici runtime del prodotto .NET, ad esempio Microsoft.AspNetCore.All o Microsoft.NETCore.App (in particolare il runtime .NET). Questi vengono installati nella directory /usr/share/dotnet/shared/$product/$version, dove $product è il runtime del prodotto. Ad esempio, potresti visualizzate le directory seguenti:

    /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/

Usa il comando rm -rf per rimuovere una versione di .NET. Ad esempio, per rimuovere l'SDK 6.0.406, esegui il comando seguente:

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

Importante

Le directory di versione potrebbero non corrispondere alla "versione" che stai disinstallando. I singoli runtime e SDK installati con una singola versione .NET potrebbero avere versioni diverse. Ad esempio, è possibile che sia stato installato il runtime ASP.NET Core 8, che ha installato il runtime 8.0.2 ASP.NET Core e il runtime .NET 8.0.8. Ognuno ha una directory con versione diversa. Per altre informazioni, vedi Panoramica di come viene specificata la versione di .NET.

Quando si installa manualmente .NET, viene in genere installato nella directory /usr/local/share/dotnet/ o $HOME/.dotnet. L'SDK, il runtime e l'host .NET vengono installati in sottodirectory separate. Queste directory "component" contengono una directory per ogni versione di .NET. Rimuovendo le directory con la versione, rimuoverai tale versione di .NET dal sistema. Queste directory possono variare a seconda della versione di macOS.

Sono disponibili tre comandi che puoi usare per individuare dove è installato .NET: dotnet --list-sdks per gli SDK, dotnet --list-runtimes per i runtime e dotnet --info per tutti gli elementi. Questi comandi non elencano l'host .NET. Per determinare quali host sono installati, controlla la directory /usr/local/share/dotnet/host/fxr/. L'elenco seguente rappresenta le directory di una versione specifica di .NET, dove la variabile $version rappresenta la versione di .NET:

  • SDK:

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

  • Runtime:

    Il runtime si basa su specifici runtime del prodotto .NET, ad esempio Microsoft.AspNetCore.All o Microsoft.NETCore.App (in particolare il runtime .NET). Questi vengono installati nella directory /usr/local/share/dotnet/shared/$product/$version, dove $product è il runtime del prodotto. Ad esempio, potresti visualizzate le directory seguenti:

    /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/

Usa il comando rm -rf per rimuovere una versione di .NET. Ad esempio, per rimuovere l'SDK 6.0.406, esegui il comando seguente:

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

Importante

Le directory di versione potrebbero non corrispondere alla "versione" che stai disinstallando. I singoli runtime e SDK installati con una singola versione .NET potrebbero avere versioni diverse. Ad esempio, è possibile che sia stato installato il runtime ASP.NET Core 8, che ha installato il runtime 8.0.2 ASP.NET Core e il runtime .NET 8.0.8. Ognuno ha una directory con versione diversa. Per altre informazioni, vedi Panoramica di come viene specificata la versione di .NET.

Importante

Se usi un Mac basato su Arm, ad esempio con un chip M1, esamina i percorsi di directory descritti in Installare .NET in Mac basati su Arm.

Strumento di disinstallazione di .NET

Lo strumento di disinstallazione di .NET (dotnet-core-uninstall) consente di rimuovere SDK e runtime .NET da un sistema. È disponibile una raccolta di opzioni per specificare le versioni da disinstallare.

Nota

Attualmente, lo strumento di disinstallazione .NET non supporta .NET 8+. Per altre informazioni sulla pianificazione del rilascio dello strumento, vedere GitHub - dotnet-uninstall-tool Roadmap.

Dipendenza di Visual Studio dalle versioni dell’SDK .NET

Prima di Visual Studio 2019 versione 16.3, i programmi di installazione di Visual Studio richiamavano il programma di installazione dell'SDK autonomo per .NET Core versione 2.1 o 2.2. Di conseguenza, le versioni dell'SDK vengono visualizzate nella finestra di dialogo App e funzionalità di Windows. La rimozione degli SDK .NET installati da Visual Studio tramite il programma di installazione autonomo può interrompere Visual Studio. Se Visual Studio presenta problemi dopo la disinstallazione degli SDK, esegui Ripristina in tale versione specifica di Visual Studio. La tabella seguente illustra alcune delle dipendenze di Visual Studio nelle versioni di .NET Core SDK:

Versione di Visual Studio Versione di .NET Core SDK
Visual Studio 2019 versione 16.2 .NET Core SDK 2.2.4xx, 2.1.8xx
Visual Studio 2019 versione 16.1 .NET Core SDK 2.2.3xx, 2.1.7xx
Visual Studio 2019 versione 16.0 .NET Core SDK 2.2.2xx, 2.1.6xx
Visual Studio 2017 versione 15.9 .NET Core SDK 2.2.1xx, 2.1.5xx
Visual Studio 2017 versione 15.8 .NET Core SDK 2.1.4xx

A partire da Visual Studio 2019 versione 16.3, Visual Studio è responsabile della propria copia di dell’SDK .NET. Per questo motivo, le versioni dell'SDK non verranno più visualizzate nella finestra di dialogo App e funzionalità.

Rimuovere la directory di fallback NuGet

Prima di .NET Core 3.0 SDK, i programmi di installazione di .NET Core SDK usavano una directory denominata NuGetFallbackFolder per archiviare una cache di pacchetti NuGet. Questa cache è stata usata durante operazioni quali dotnet restore o dotnet build /t:Restore. La NuGetFallbackFolder si trova nella cartella sdk in cui è installato .NET. Ad esempio, potrebbe trovarsi in C:\Programmi\dotnet\sdk\NuGetFallbackFolder su Windows e in /usr/local/share/dotnet/sdk/NuGetFallbackFolder su macOS.

Puoi rimuovere questa directory, se:

  • Stai sviluppando solo con .NET Core 3.0 SDK o .NET 5 o versioni successive.
  • Stai sviluppando usando le versioni di .NET Core SDK precedenti alla 3.0, ma puoi lavorare online.

Se vuoi rimuovere la directory di fallback NuGet, puoi eliminarla, ma sono necessari privilegi di amministratore per farlo.

Non è consigliabile eliminare la directory dotnet. In questo modo verranno rimossi tutti gli strumenti globali installati in precedenza. Inoltre, in Windows:

  • Si interromperà Visual Studio 2019 versione 16.3 e versioni successive. Puoi eseguire Ripristina per il ripristino.
  • Se sono presenti voci di .NET Core SDK nella finestra di dialogo App e funzionalità, saranno orfane.