.NET 解除安裝工具

.NET 解除安裝工具 (dotnet-core-uninstall) 可讓您從系統中移除 .NET SDK 和執行階段。 選項的集合可用來指定要解除安裝的版本。

此工具支援 Windows 和 macOS。 目前不支援 Linux。

在 Windows 上,此工具僅能解除安裝使用下列安裝程式安裝的 SDK 和執行階段:

  • .NET SDK 和執行階段安裝程式。
  • Visual Studio 2019 16.3 版之前的 Visual Studio 安裝程式。

在 macOS 上,此工具只能解除安裝位於 /usr/local/share/dotnet 資料夾中的 SDK 和執行階段。

由於這些限制,該工具可能無法解除安裝您電腦上的所有 .NET SDK 和執行階段。 您可以使用 dotnet --info 命令來尋找已安裝的所有 .NET SDK 和執行階段,包括無法使用工具移除的 SDK 和執行階段。 dotnet-core-uninstall list 命令會顯示可使用工具解除安裝的 SDK。

注意

目前,.NET 卸載工具不支援 .NET 8+。 如需工具發行排程的詳細資訊,請參閱 GitHub - dotnet-uninstall-tool 藍圖

安裝工具

您可以從工具的版本頁面下載 .NET 解除安裝工具,並在 dotnet/cli-lab GitHub 存放庫尋找原始程式碼。

注意

該工具需要提高權限,才能解除安裝 .NET SDK 和執行階段。 因此,應安裝在受寫入保護的目錄中,例如 Windows 上的 C:\Program Files 或 macOS 上的 /usr/local/bin。 如需詳細資訊,請參閱 dotnet 命令提升存取權限詳細安裝說明

執行工具

下列步驟顯示執行解除安裝工具的建議方法:

步驟 1 - 顯示已安裝的 .NET SDK 和執行階段

dotnet-core-uninstall list 命令會列出可使用此工具移除的已安裝 .NET SDK 和執行階段。 Visual Studio 可能需要某些 SDK 和執行階段,並顯示備註說明為何不建議進行解除安裝。

注意

在大部分情況下,dotnet-core-uninstall list 命令的輸出不符合 dotnet --info 的輸出中安裝版本的清單。 具體而言,此工具不會顯示 zip 檔案所安裝或由 Visual Studio 管理的版本 (亦即任何隨 Visual Studio 2019 16.3 版或更新版本一起安裝的版本)。 檢查版本是否由 Visual Studio 管理的方法之一,就是在 Add or Remove Programs 中檢視,Visual Studio Managed 版本會在此標示為其顯示名稱。

如需詳細資訊,請參閱本文稍後的 list 命令部分。

步驟 2:進行試執行

dotnet-core-uninstall dry-rundotnet-core-uninstall whatif 命令會顯示根據已提供選項移除的 .NET SDK 和執行階段,而不需要執行解除安裝。 這些命令實際上是同義字。

如需詳細資訊,請參閱本文稍後的 dry-runwhatif 命令

步驟 3 - 解除安裝 .NET SDK 和執行階段

dotnet-core-uninstall remove 可解除安裝透過選項集合指定的 .NET SDK 和執行階段。

由於此工具會進行破壞性行為,因此極力建議您在執行移除命令之前執行,先進行試執行。 試執行會顯示在使用 remove 命令時,會移除哪些 .NET SDK 和執行階段。 請參閱我是否應該移除某個版本?,以了解哪些 SDK 和執行階段可安全移除。

警告

請記住下列注意事項:

  • 此工具可以解除安裝電腦上 global.json 檔案所需的 .NET SDK 版本。 您可以從下載 .NET 頁面重新安裝 .NET SDK。
  • 此工具可以解除安裝電腦上架構相依應用程式所需的 .NET Runtime 版本。 您可以從下載 .NET 頁面重新安裝 .NET Runtime。
  • 此工具可以解除安裝 Visual Studio 依賴的 .NET SDK 和執行階段版本。 如果您中斷 Visual Studio 安裝作業,請在 Visual Studio 安裝程式中執行「修復」,以回到工作狀態。

根據預設,所有命令會保留 Visual Studio 或其他 SDK 可能需要的 .NET SDK 和執行階段。 這些 SDK 和執行階段可明確列為引數或使用 --force 選項,以進行解除安裝。

該工具需要提高權限,才能解除安裝 .NET SDK 和執行階段。 請在 Windows 以系統管理員命令提示字元執行此工具,在 macOS 則請用 sudo 執行。 dry-runwhatif 命令不需要提高權限。

如需詳細資訊,請參閱本文稍後的 移除命令

步驟 4:刪除 NuGet 後援資料夾 (選用)

在某些情況下,您可能不再需要 NuGetFallbackFolder,並且想將其刪除。 如需深入了解相關資訊,請參閱移除 NuGetFallbackFolder

解除安裝此工具

  1. 開啟 [新增或移除程式]
  2. 搜尋 Microsoft .NET SDK Uninstall Tool
  3. 選取解除安裝

list 命令

概要

dotnet-core-uninstall list [options]

選項。

  • --aspnet-runtime

    列出可使用此工具解除安裝的所有 ASP.NET 執行階段。

  • --hosting-bundle

    列出可使用此工具解除安裝的所有 .NET 裝載套件組合。

  • --runtime

    列出可使用此工具解除安裝的所有 .NET 執行階段。

  • --sdk

    列出可使用此工具解除安裝的所有 .NET SDK。

  • -v, --verbosity <LEVEL>

    設定詳細程度等級。 允許的值為 q[uiet]m[inimal]n[ormal]d[etailed]diag[nostic]。 預設值是 normal

  • --x64

    列出可使用此工具解除安裝的所有 x64 .NET SDK 和執行階段。

  • --x86

    列出可使用此工具解除安裝的所有 x86 .NET SDK 和執行階段。

範例

  • 列出可使用此工具移除的所有 .NET SDK 和執行階段:

    dotnet-core-uninstall list
    
  • 列出所有 x64 .NET SDK 和執行階段:

    dotnet-core-uninstall list --x64
    
  • 列出所有 x86 .NET SDK:

    dotnet-core-uninstall list --sdk --x86
    

dry-runwhatif 命令

概要

dotnet-core-uninstall dry-run [options] [<VERSION>...]

dotnet-core-uninstall whatif [options] [<VERSION>...]

引數

VERSION

要解除安裝的指定版本。 您可以逐一列出數個版本,並以空格分隔。 也支援回應檔。

提示

如不想將所有版本都放在命令列上,可採用回應檔作為替代方案。 這是一種文字檔,副檔名通常為 *.rsp,並將每個版本列在個別的行上。 若要指定 VERSION 引數的回應檔,請在回應檔名稱後加上 @ 字元。

選項。

  • --all

    移除所有 .NET SDK 和執行階段。

  • --all-below <VERSION>[ <VERSION>...]

    僅移除版本編號小於指定版本的 .NET SDK 和執行階段。 指定的版本仍會維持已安裝狀態。

  • --all-but <VERSIONS>[ <VERSION>...]

    移除所有 .NET SDK 和執行階段,但指定的版本除外。

  • --all-but-latest

    移除 .NET SDK 和執行階段,但最高版本除外。

  • --all-lower-patches

    移除已由較新版本修補程式取代的 .NET SDK 和執行階段。 此選項可保護 global.json 檔案。

  • --all-previews

    移除標示為預覽版的 .NET SDK 和執行階段。

  • --all-previews-but-latest

    移除標示為預覽版的 .NET SDK 和執行階段,但最高預覽版除外。

  • --aspnet-runtime

    僅移除 ASP.NET 執行階段。

  • --hosting-bundle

    僅移除 .NET 執行階段和裝載套件組合。

  • --major-minor <MAJOR_MINOR>

    移除符合指定 major.minor 版本的 .NET SDK 和執行階段。

  • --runtime

    僅移除 .NET 執行階段。

  • --sdk

    僅移除 .NET SDK。

  • -v, --verbosity <LEVEL>

    設定詳細程度等級。 允許的值為 q[uiet]m[inimal]n[ormal]d[etailed]diag[nostic]。 預設值是 normal

  • --x64

    必須與 --sdk--runtime--aspnet-runtime 搭配使用,才能移除 x64 SDK 或執行階段。

  • --x86

    必須與 --sdk--runtime--aspnet-runtime 搭配使用,才能移除 x86 SDK 或執行階段。

  • --force

    會強制移除 Visual Studio 可能使用的版本。

注意

  • 只需要 --sdk--runtime--aspnet-runtime--hosting-bundle 的其中一個。
  • --all--all-below--all-but--all-but-latest--all-lower-patches--all-previews--all-previews-but-latest--major-minor[<VERSION>...] 都是專用的。
  • 如果未指定 --x64--x86,則 x64 和 x86 都會移除。

範例

注意

根據預設,Visual Studio 或其他 SDK 可能需要的 .NET SDK 和執行階段,都不會包含在 dotnet-core-uninstall dry-run 輸出中。 在下列範例中,根據機器的狀態,某些指定的 SDK 和執行階段可能不會包含在輸出中。 若要包含所有 SDK 和執行階段,請明確將其列為引數,或使用 --force 選項。

  • 試執行移除已由較高修補程式取代的所有 .NET 執行階段:

    dotnet-core-uninstall dry-run --all-lower-patches --runtime
    
  • 試執行移除版本 2.2.301 以下的所有 .NET SDK:

    dotnet-core-uninstall whatif --all-below 2.2.301 --sdk
    

remove 命令

概要

dotnet-core-uninstall remove [options] [<VERSION>...]

引數

VERSION

要解除安裝的指定版本。 您可以逐一列出數個版本,並以空格分隔。 也支援回應檔。

提示

如不想將所有版本都放在命令列上,可採用回應檔作為替代方案。 這是一種文字檔,副檔名通常為 *.rsp,並將每個版本列在個別的行上。 若要指定 VERSION 引數的回應檔,請在回應檔名稱後加上 @ 字元。

選項。

  • --all

    移除所有 .NET SDK 和執行階段。

  • --all-below <VERSION>[ <VERSION>...]

    僅移除版本編號小於指定版本的 .NET SDK 和執行階段。 指定的版本仍會維持已安裝狀態。

  • --all-but <VERSIONS>[ <VERSION>...]

    移除所有 .NET SDK 和執行階段,但指定的版本除外。

  • --all-but-latest

    移除 .NET SDK 和執行階段,但最高版本除外。

  • --all-lower-patches

    移除已由較新版本修補程式取代的 .NET SDK 和執行階段。 此選項可保護 global.json 檔案。

  • --all-previews

    移除標示為預覽版的 .NET SDK 和執行階段。

  • --all-previews-but-latest

    移除標示為預覽版的 .NET SDK 和執行階段,但最高預覽版除外。

  • --aspnet-runtime

    僅移除 ASP.NET 執行階段。

  • --hosting-bundle

    僅移除 .NET 裝載套件組合。

  • --major-minor <MAJOR_MINOR>

    移除符合指定 major.minor 版本的 .NET SDK 和執行階段。

  • --runtime

    僅移除 .NET 執行階段。

  • --sdk

    僅移除 .NET SDK。

  • -v, --verbosity <LEVEL>

    設定詳細程度等級。 允許的值為 q[uiet]m[inimal]n[ormal]d[etailed]diag[nostic]。 預設值是 normal

  • --x64

    必須與 --sdk--runtime--aspnet-runtime 搭配使用,才能移除 x64 SDK 或執行階段。

  • --x86

    必須與 --sdk--runtime--aspnet-runtime 搭配使用,才能移除 x86 SDK 或執行階段。

  • -y, --yes

    可執行命令,而不需要進行是或否的確認。

  • --force

    會強制移除 Visual Studio 可能使用的版本。

注意

  • 只需要 --sdk--runtime--aspnet-runtime--hosting-bundle 的其中一個。
  • --all--all-below--all-but--all-but-latest--all-lower-patches--all-previews--all-previews-but-latest--major-minor[<VERSION>...] 都是專用的。
  • 如果未指定 --x64--x86,則 x64 和 x86 都會移除。

範例

注意

根據預設,Visual Studio 或其他 SDK 可能需要的 .NET SDK 和執行階段皆會保留。 在下列範例中,根據機器的狀態,某些指定的 SDK 和執行階段可能會維持不變。 若要移除所有 SDK 和執行階段,請明確地將其列為引數,或使用 --force 選項。

  • 移除版本 3.0.0-preview6-27804-01 以外的所有 .NET 執行階段,而不需要進行是或否的確認:

    dotnet-core-uninstall remove --all-but 3.0.0-preview6-27804-01 --runtime --yes
    
  • 移除所有 .NET Core 1.1 SDK,而不需要進行是或否的確認:

    dotnet-core-uninstall remove --sdk --major-minor 1.1 -y
    
  • 移除 .NET Core 1.1.11 SDK 且無主控台輸出:

    dotnet-core-uninstall remove 1.1.11 --sdk --yes --verbosity q
    
  • 移除可由此工具安全地移除的所有 .NET SDK:

    dotnet-core-uninstall remove --all --sdk
    
  • 移除可由此工具移除的所有 .NET SDK,包含 Visual Studio 可能需要的 SDK (不建議):

    dotnet-core-uninstall remove --all --sdk --force
    
  • 移除 versions.rsp 回應檔中指定的所有 .NET SDK:

    dotnet-core-uninstall remove --sdk @versions.rsp
    

    versions.rsp 檔案的內容如下所示:

    2.2.300
    2.1.700