Procédure de suppression du runtime et du kit de développement logiciel (SDK) .NET

Au fil du temps, lorsque vous installez des versions mises à jour du runtime et du kit de développement logiciel (SDK) .NET, vous pouvez supprimer les versions obsolètes de .NET de votre ordinateur. La désinstallation des versions antérieures du runtime peut changer le runtime choisi pour exécuter des applications de framework partagées, comme détaillé dans l’article sur la sélection de versions .NET.

Dois-je supprimer une version ?

Les comportements de sélection de versions .NET et la compatibilité du runtime de .NET entre les mises à jour permettent la suppression sécurisée des versions précédentes. Les mises à jour du runtime .NET sont compatibles au sein d’une bande de versions majeures telles que 7.x et 6.x. En outre, les versions plus récentes du kit de développement logiciel (SDK) .NET conservent généralement la possibilité de créer des applications qui ciblent les versions précédentes du runtime de manière compatible.

En règle générale, vous avez uniquement besoin de la dernière version du SDK et de la dernière version des correctifs pour les Runtimes requis par votre application. Les instances où vous souhaitez peut-être conserver des versions antérieures du kit de développement logiciel (SDK) ou du runtime incluent la maintenance des applications basées sur project.json. Si votre application ne nécessite pas de versions antérieures du SDK ou du Runtime pour une raison particulière, vous pouvez supprimer les versions antérieures en toute sécurité.

Déterminer ce qui est installé

La CLI .NET propose des options que vous pouvez utiliser pour répertorier les versions du kit de développement logiciel (SDK) et du runtime installés sur votre ordinateur. Utilisez dotnet --list-sdks pour afficher la liste des kits de développement logiciel (SDK) installés et dotnet --list-runtimes pour la liste des runtimes. Pour plus d’informations, consultez Comment vérifier que .NET est déjà installé.

Désinstallation de .NET

.NET utilise la boîte de dialogue Applications et fonctionnalités Windows pour supprimer les versions du runtime et du kit de développement logiciel (SDK) .NET. La figure suivante montre la boîte de dialogue Applications et fonctionnalités. Vous pouvez rechercher core ou .net pour filtrer et afficher les versions installées de .NET.

Ajout/Suppression de programmes pour supprimer .NET

Sélectionnez les versions que vous souhaitez supprimer de votre ordinateur, puis cliquez sur Désinstaller.

La meilleure façon de désinstaller .NET consiste à faire la même action que vous avez utilisée pour installer .NET. Les spécificités dépendent de votre distribution Linux choisie et de la méthode d’installation.

Les préversions sont installées manuellement et doivent être désinstallées manuellement. Pour plus d’informations, consultez la section Avec le script ou manuellement.

Important

Pour les installations de Red Hat, consultez la documentation sur les produits Red Hat pour .NET.

Vous pouvez supprimer les types suivants d’installations .NET :

Gestionnaire de package

Il n’est pas nécessaire de désinstaller en premier le kit de développement logiciel (SDK) .NET lors de la mise à niveau à l’aide d’un gestionnaire de package, sauf si vous effectuez une mise à niveau à partir d’une version préliminaire installée manuellement. Les commandes update ou refresh du gestionnaire de package suppriment automatiquement l’ancienne version une fois l’installation d’une version plus récente terminée. Si une version préliminaire est installée, désinstallez-la.

Si vous avez installé .NET à l’aide d’un gestionnaire de package, utilisez ce même gestionnaire de package pour désinstaller le kit de développement logiciel (SDK) ou le runtime .NET. Les installations .NET prennent en charge les gestionnaires de package les plus populaires. Consultez la documentation du gestionnaire de package de votre distribution pour connaître la syntaxe précise dans votre environnement :

  • apt-get(8) est utilisé sur les systèmes Debian, y compris Ubuntu.
  • yum(8) est utilisé sur Fedora, CentOS, Oracle Linux et RHEL.
  • zypper(8) est utilisé sur les systèmes openSUSE et SLES (SUSE Linux Enterprise System).
  • dnf(8) est utilisé sur les systèmes Fedora.

Dans presque tous les cas, la commande de suppression d’un package est remove.

Le nom du package pour l’installation du kit de développement logiciel (SDK) .NET pour la plupart des gestionnaires de package est dotnet-sdk, suivi du numéro de version. Seuls les numéros de version majeure et mineure sont nécessaires : par exemple, le SDK .NET version 8.0.200 peut être référencé en tant que package dotnet-sdk-8.0.

Pour les machines sur lesquelles seul le runtime a été installé, et non le kit de développement logiciel (SDK), le nom du package est dotnet-runtime-<version> pour le runtime .NET et aspnetcore-runtime-<version> pour l’ensemble de la pile de runtime.

Avec le script ou manuellement

Si vous avez installé .NET avec le script dotnet-install ou en extrayant un tarball, vous devez supprimer .NET avec la méthode manuelle.

Quand vous installez manuellement .NET, il est généralement installé dans le répertoire /usr/share/dotnet/, /usr/lib/dotnet/ ou $HOME/.dotnet. Le SDK, le runtime et l’hôte .NET sont installés dans des sous-répertoires distincts. Ces répertoires de « composant » contiennent un répertoire pour chaque version de .NET. Quand vous supprimez un répertoire avec version, vous supprimez la version de .NET correspondante de votre système. Ces répertoires peuvent varier en fonction de votre distribution Linux.

Vous pouvez utiliser trois commandes pour découvrir où .NET est installé : dotnet --list-sdks pour les SDK, dotnet --list-runtimes pour les runtimes et dotnet --info pour tout. Ces commandes ne listent pas l’hôte .NET. Pour déterminer quels hôtes sont installés, vérifiez le répertoire /usr/share/dotnet/host/fxr/. La liste suivante représente les répertoires d’une version spécifique de .NET, désignée par la variable $version :

  • SDK :

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

  • Runtime :

    Le runtime est basé sur des runtimes de produit .NET spécifiques, tels que Microsoft.AspNetCore.All ou Microsoft.NETCore.App (le runtime .NET proprement dit). Ceux-ci sont installés dans le répertoire /usr/share/dotnet/shared/$product/$version, où $product représente le runtime de produit. Par exemple, vous pouvez voir les répertoires suivants :

    /usr/share/dotnet/shared/Microsoft.NETCore.App/$version/
    /usr/share/dotnet/shared/Microsoft.AspNetCore.App/$version/
    /usr/share/dotnet/shared/Microsoft.AspNetCore.All/$version/
    
  • Hôte .NET

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

Utilisez la commande rm -rf pour supprimer une version de .NET. Par exemple, pour supprimer le SDK 6.0.406, exécutez la commande suivante :

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

Important

Les répertoires de la version peuvent ne pas correspondre à la « version » que vous désinstallez. Les runtimes et kits de développement logiciel (SDK) individuels, installés avec une seule version de .NET, peuvent être de versions différentes. Par exemple, vous pouvez avoir installé le runtime ASP.NET Core 8. Ce dernier a installé le runtime ASP.NET Core 8.0.2 et le runtime .NET 8.0.8. Chacun a un répertoire avec une version différente. Pour plus d’informations, consultez Vue d’ensemble de la façon dont .NET est versionné.

Quand vous installez manuellement .NET, il est généralement installé dans le répertoire /usr/local/share/dotnet/ ou $HOME/.dotnet. Le kit de développement logiciel (SDK), le runtime et l’hôte .NET sont installés dans des sous-répertoires distincts. Ces répertoires de « composant » contiennent un répertoire pour chaque version de .NET. Quand vous supprimez un répertoire avec version, vous supprimez la version de .NET correspondante de votre système. Ces répertoires peuvent varier en fonction de votre version de macOS.

Vous pouvez utiliser trois commandes pour découvrir où .NET est installé : dotnet --list-sdks pour les SDK, dotnet --list-runtimes pour les runtimes et dotnet --info pour tout. Ces commandes ne listent pas l’hôte .NET. Pour déterminer quels hôtes sont installés, vérifiez le répertoire /usr/local/share/dotnet/host/fxr/. La liste suivante représente les répertoires d’une version spécifique de .NET, désignée par la variable $version :

  • SDK :

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

  • Runtime :

    Le runtime est basé sur des runtimes de produit .NET spécifiques, tels que Microsoft.AspNetCore.All ou Microsoft.NETCore.App (le runtime .NET proprement dit). Ceux-ci sont installés dans le répertoire /usr/local/share/dotnet/shared/$product/$version, où $product représente le runtime de produit. Vous pouvez par exemple voir les répertoires suivants :

    /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/
    
  • Hôte .NET

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

Utilisez la commande rm -rf pour supprimer une version de .NET. Par exemple, pour supprimer le SDK 6.0.406, exécutez la commande suivante :

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

Important

Les répertoires de la version peuvent ne pas correspondre à la « version » que vous désinstallez. Les runtimes et kits de développement logiciel (SDK) individuels, installés avec une seule version de .NET, peuvent être de versions différentes. Par exemple, vous pouvez avoir installé le runtime ASP.NET Core 8. Ce dernier a installé le runtime ASP.NET Core 8.0.2 et le runtime .NET 8.0.8. Chacun a un répertoire avec une version différente. Pour plus d’informations, consultez Vue d’ensemble de la façon dont .NET est versionné.

Important

Si vous utilisez un Mac basé sur Arm, tel qu’un avec une puce M1, passez en revue les chemins de répertoire décrits dans Installer .NET sur des Mac basés sur Arm.

Outil de désinstallation .NET

L’outil de désinstallation .NET (dotnet-core-uninstall) vous permet de supprimer des kits de développement logiciel (SDK) et des runtimes .NET d’un système. Une collection d’options est disponible pour spécifier les versions à désinstaller.

Remarque

Actuellement, Désinstaller .NET ne prend pas en charge .NET 8+. Pour obtenir plus d’informations sur la planification de mise en production de l’outil, consultez GitHub – Feuille de route dotnet-uninstall-tool.

Dépendance de Visual Studio sur les versions du kit de développement logiciel (SDK) .NET

Avant Visual Studio 2019 version 16.3, les programmes d’installation de Visual Studio appelaient le programme d’installation du kit de développement logiciel (SDK) autonome pour .NET Core version 2.1 ou 2.2. Par conséquent, les versions du kit de développement logiciel (SDK) apparaissent dans la boîte de dialogue Applications et fonctionnalités Windows. La suppression des kits de développement logiciel (SDK) .NET installés par Visual Studio à l’aide du programme d’installation autonome peut interrompre Visual Studio. Si Visual Studio rencontre des problèmes après avoir désinstallé des kits de développement logiciel (SDK), exécutez Réparer sur cette version spécifique de Visual Studio. Le tableau suivant présente quelques-unes des dépendances Visual Studio sur les versions du kit de développement logiciel (SDK) .NET Core :

Version Visual Studio Version du kit SDK .NET Core
Visual Studio 2019 version 16.2 Kit SDK .NET Core 2.2.4xx, 2.1.8xx
Visual Studio 2019 version 16.1 Kit SDK .NET Core 2.2.3xx, 2.1.7xx
Visual Studio 2019 version 16.0 Kit SDK .NET Core 2.2.2xx, 2.1.6xx
Visual Studio 2017 version 15.9 Kit SDK .NET Core 2.2.1xx, 2.1.5xx
Visual Studio 2017 version 15.8 Kit SDK .NET Core 2.1.4xx

À compter de Visual Studio 2019 version 16.3, Visual Studio est responsable de sa propre copie du kit de développement logiciel (SDK) .NET. Pour cette raison, vous ne voyez plus ces versions du kit de développement logiciel (SDK) dans la boîte de dialogue Applications et fonctionnalités.

Supprimer le répertoire de secours NuGet

Avant le SDK .NET Core 3.0, les programmes d’installation du SDK .NET Core utilisaient un répertoire nommé NuGetFallbackFolder pour stocker un cache de packages NuGet. Ce cache a été utilisé pendant des opérations telles que dotnet restore ou dotnet build /t:Restore. NuGetFallbackFolder se trouvait dans le dossier sdk d’installation de .NET. Par exemple, il pouvait s’agir de C:\Program Files\dotnet\sdk\NuGetFallbackFolder sur Windows et de /usr/local/share/dotnet/sdk/NuGetFallbackFolder sur macOS.

Vous souhaiterez peut-être supprimer ce répertoire, si :

  • Vous développez uniquement à l’aide du Kit de développement logiciel (SDK) .NET Core 3.0 ou .NET 5 ou versions ultérieures.
  • Vous développez à l’aide des versions du kit de développement logiciel (SDK) .NET Core antérieures à la version 3.0, mais vous pouvez travailler en ligne.

Si vous souhaitez supprimer le répertoire de secours NuGet, vous pouvez le supprimer, mais vous aurez besoin de privilèges administratifs pour le faire.

Il n’est pas recommandé de supprimer le répertoire dotnet. Cela supprime tous les outils globaux que vous avez installés précédemment. En outre, sur Windows :

  • Vous interromprez Visual Studio 2019 version 16.3 et les versions ultérieures. Vous pouvez exécuter Réparer aux fins de récupération.
  • S’il existe des entrées du kit SDK .NET Core dans la boîte de dialogue Applications et fonctionnalités, elles seront orphelines.