.NET ランタイムと SDK を削除する方法

時間の経過に伴い、.NET ランタイムと SDK の更新バージョンをインストールした場合は、ご利用のコンピューターから古いバージョンの .NET を削除することをお勧めします。 ランタイムの古いバージョンをアンインストールすると、共有のフレームワーク アプリケーションを実行するように選択されているランタイムが変更される可能性があります。詳細については、「.NET バージョンの選択」を参照してください。

バージョンを削除する必要はあるか

.NET バージョン選択動作および更新プログラム間での .NET のランタイム互換性により、以前のバージョンを安全に削除することができます。 7.x や 6.x などのメジャー バージョン バンド 内で .NET ランタイム更新プログラムは互換性があります。 さらに、.NET SDK のより新しいリリースでは、通常、互換性を保ちながら、ランタイムの前バージョンを対象とするアプリケーションをビルドする機能が維持されます。

通常、必要なのは、ご自分のアプリケーションに必須である最新の SDK および最新のパッチ バージョンのランタイムのみです。 たとえば、project.json ベースのアプリケーションを管理するとき、以前のバージョンの SDK またはランタイムを保持することがあります。 ご利用のアプリケーションには以前の SDK やランタイムを維持する特別な理由がない場合、以前のバージョンを安全に削除することができます。

インストールされている内容を確認する

ご利用のコンピューターにインストールされている SDK とランタイムのバージョンを一覧表示するのに使用できるオプションが .NET CLI に用意されています。 dotnet --list-sdks を使用すると、インストールされている SDK の一覧が、dotnet --list-runtimes を使用するとランタイムの一覧が表示されます。 詳細については、.NET が既にインストールされていることを確認する方法に関するページを参照してください。

.NET をアンインストールする

.NET では、Windows の [アプリと機能] ダイアログを使用して .NET ランタイムと SDK のバージョンを削除できます。 [アプリと機能] ダイアログ ボックスを次の図に示します。 core または .net を検索すると、.NET Core のインストールされているバージョンをフィルター処理して表示することができます。

.NET を削除するための [プログラムの追加と削除]

ご利用のコンピューターから削除する任意のバージョンを選択して、 [アンインストール] をクリックします。

.NET をアンインストールするには、.NET をインストールするときに使用したアクションをミラー化することをお勧めします。 詳細は、選択した Linux ディストリビューションとインストール方法によって異なります。

プレビュー リリースは手動でインストールされており、手動でアンインストールする必要があります。 詳細については、「スクリプトまたは手動」セクションを参照してください。

重要

Red Hat のインストールについては、.NET 用の Red Hat 製品ドキュメントを参照してください。

.NET インストールの場合、次の種類を削除できます。

パッケージ マネージャー

パッケージ マネージャーを使用して .NET SDK をアップグレードする場合、それを最初にアンインストールする必要はありません。ただし、手動でインストールされたプレビュー バージョンからアップグレードする場合を除きます。 パッケージ マネージャーの update または refresh コマンドでは、新しいバージョンが正常にインストールされると、古いバージョンが自動的に削除されます。 プレビュー バージョンがインストールされている場合は、それをアンインストールします。

パッケージ マネージャーを使用して .NET をインストールした場合は、それと同じパッケージ マネージャーを使用して .NET SDK またはランタイムをアンインストールします。 .NET インストールでは、最も一般的なパッケージ マネージャーがサポートされています。 ご利用の環境内での正確な構文については、ご利用の配布のパッケージ マネージャーのドキュメントを参照してください。

  • apt-get(8) は、Ubuntu などの Debian ベースのシステムによって使用されます。
  • yum(8) は、Fedora、CentOS、Oracle Linux、RHEL 上で使用されます。
  • zypper(8) は、openSUSE および SUSE Linux Enterprise System (SLES) 上で使用されます。
  • dnf(8) は、Fedora 上で使用されます。

ほとんどの場合、パッケージを削除するコマンドは remove となります。

ほとんどのパッケージ マネージャーの場合、.NET SDK インストールのパッケージ名は dotnet-sdk であり、その後にバージョン番号が続きます。 メジャーおよびマイナーのバージョン番号のみが必要です。たとえば、.NET SDK バージョン 8.0.200 は、パッケージ dotnet-sdk-8.0 として参照できます。

ランタイムのみがインストールされ、SDK はインストールされていないコンピューターの場合、.NET ランタイムのパッケージ名は dotnet-runtime-<version> となり、ランタイム スタック全体のパッケージ名は aspnetcore-runtime-<version> となります。

スクリプトまたは手動

dotnet-install スクリプトを使用するか、tarball を展開して .NET をインストールした場合は、手動で .NET を削除する必要があります。

.NET を手動でインストールすると、通常は /usr/share/dotnet//usr/lib/dotnet/、または $HOME/.dotnet ディレクトリにインストールされます。 SDK、ランタイム、および .NET ホストは、個別のサブディレクトリにインストールされます。 これらの "コンポーネント" ディレクトリには、.NET の各バージョンのディレクトリが含まれています。 バージョン管理されたディレクトリを削除すると、そのバージョンの .NET がシステムから削除されます。 これらのディレクトリは、Linux ディストリビューションによって異なる場合があります。

.NET がインストールされている場所を検出するために使用できるコマンドは 3 つあります。SDK の場合は dotnet --list-sdks、ランタイムの場合は dotnet --list-runtimes、すべての場合は dotnet --info です。 これらのコマンドでは、.NET ホストは一覧表示されません。 インストールされているホストを確認するには、/usr/share/dotnet/host/fxr/ ディレクトリをチェックします。 次の一覧は、.NET の特定のバージョンのディレクトリを表します。ここで、$version 変数は .NET のバージョンを表します。

  • SDK:

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

  • ランタイム:

    ランタイムは、Microsoft.AspNetCore.AllMicrosoft.NETCore.App (具体的には .NET ランタイム) などの特定の .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 のバージョンを削除します。 たとえば、6.0.406 SDK を削除するには、次のコマンドを実行します。

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

重要

バージョン ディレクトリは、アンインストールしている "バージョン" と一致しない場合があります。 1 つの .NET リリースと共にインストールされる個々のランタイムと SDK は、バージョンが異なる場合があります。 たとえば、ASP.NET Core 8 ランタイムをインストールした場合、8.0.2 ASP.NET Core ランタイムと 8.0.8 .NET ランタイムがインストールされます。 それぞれにバージョン管理されたディレクトリがあります。 詳細については、「.NET のバージョン管理の方法の概要」を参照してください。

.NET を手動でインストールすると、通常は /usr/local/share/dotnet/ または $HOME/.dotnet ディレクトリにインストールされます。 SDK、ランタイム、および .NET ホストは、個別のサブディレクトリにインストールされます。 これらの "コンポーネント" ディレクトリには、.NET の各バージョンのディレクトリが含まれています。 バージョン管理されたディレクトリを削除すると、そのバージョンの .NET がシステムから削除されます。 これらのディレクトリは、お使いの macOS のバージョンでは異なる場合があります。

.NET がインストールされている場所を検出するために使用できるコマンドは 3 つあります。SDK の場合は dotnet --list-sdks、ランタイムの場合は dotnet --list-runtimes、すべての場合は dotnet --info です。 これらのコマンドでは、.NET ホストは一覧表示されません。 インストールされているホストを確認するには、/usr/local/share/dotnet/host/fxr/ ディレクトリをチェックします。 次の一覧は、.NET の特定のバージョンのディレクトリを表します。ここで、$version 変数は .NET のバージョンを表します。

  • SDK:

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

  • ランタイム:

    ランタイムは、Microsoft.AspNetCore.AllMicrosoft.NETCore.App (具体的には .NET ランタイム) などの特定の .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 のバージョンを削除します。 たとえば、6.0.406 SDK を削除するには、次のコマンドを実行します。

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

重要

バージョン ディレクトリは、アンインストールしている "バージョン" と一致しない場合があります。 1 つの .NET リリースと共にインストールされる個々のランタイムと SDK は、バージョンが異なる場合があります。 たとえば、ASP.NET Core 8 ランタイムをインストールした場合、8.0.2 ASP.NET Core ランタイムと 8.0.8 .NET ランタイムがインストールされます。 それぞれにバージョン管理されたディレクトリがあります。 詳細については、「.NET のバージョン管理の方法の概要」を参照してください。

重要

M1 チップを搭載したものなど、Arm ベースの Mac を使用している場合は、「Arm ベースの Mac への .NET のインストール」で説明されているディレクトリ パスを確認してください。

.NET アンインストール ツール

.NET アンインストール ツール (dotnet-core-uninstall) を使用すると、.NET SDK とランタイムをシステムから削除できます。 一連のオプションを使用して、アンインストールするバージョンを指定できます。

Note

現在、.NET アンインストール ツールでは .NET 8 以降はサポートされていません。 このツールのリリース スケジュールの詳細については、「GitHub - dotnet-uninstall-tool ロードマップ」を参照してください。

.NET SDK バージョンに対する Visual Studio の依存関係

Visual Studio 2019 バージョン 16.3 より前は、Visual Studio インストーラーにより .NET Core バージョン 2.1 または 2.2 用のスタンドアロンの SDK インストーラーが呼び出されました。 その結果、Windows の [アプリと機能] ダイアログに SDK のバージョンが表示されます。 スタンドアロン インストーラーを使用して Visual Studio によってインストールされた .NET SDK を削除すると、Visual Studio が破損するおそれがあります。 SDK をアンインストールした後に Visual Studio で問題が発生した場合は、その特定のバージョンの Visual Studio で [修復] を実行します。 次の表に、.NET Core SDK バージョンに対する Visual Studio の依存関係の一部を示します。

Visual Studio のバージョン .NET Core SDK のバージョン
Visual Studio 2019 バージョン 16.2 .NET Core SDK 2.2.4xx、2.1.8xx
Visual Studio 2019 バージョン 16.1 .NET Core SDK 2.2.3xx、2.1.7xx
Visual Studio 2019 バージョン 16.0 .NET Core SDK 2.2.2xx、2.1.6xx
Visual Studio 2017 バージョン 15.9 .NET Core SDK 2.2.1xx、2.1.5xx
Visual Studio 2017 バージョン 15.8 .NET Core SDK 2.1.4xx

Visual Studio 2019 バージョン 16.3 以降では、Visual Studio によって .NET SDK の独自のコピーが管理されます。 そのため、[アプリと機能] ダイアログにこれらの SDK バージョンが表示されなくなりました。

NuGet フォールバック ディレクトリを削除する

.NET Core 3.0 SDK より前では、.NET Core SDK インストーラーでは NuGetFallbackFolder という名前のディレクトリを使用して NuGet パッケージのキャッシュを保存していました。 このキャッシュは、dotnet restoredotnet build /t:Restore などの操作中に使用されました。 NuGetFallbackFolder は、.NET がインストールされている sdk フォルダーの下にあります。 たとえば、Windows では C:\Program Files\dotnet\sdk\NuGetFallbackFolder に、macOS では /usr/local/share/dotnet/sdk/NuGetFallbackFolder にある可能性があります。

次の場合は、このディレクトリを削除することができます。

  • .NET Core 3.0 SDK または .NET 5 以降のバージョンのみを使用して開発している。
  • 3\.0 より前の .NET Core SDK のバージョンを使用して開発しているが、オンラインで作業できる。

NuGet フォールバック ディレクトリを削除したい場合は削除できますが、管理者特権が必要です。

dotnet ディレクトリの削除はお勧めしません。 これを行うと、以前にインストールしたグローバル ツールがすべて削除されます。 また、Windows の場合は、次のことが発生します。

  • Visual Studio 2019 バージョン 16.3 以降のバージョンが破損します。 [修復] を実行して回復できます。
  • [アプリと機能] ダイアログに .NET Core SDK エントリがある場合、それらは孤立状態になります。