如何在 Windows 上卸载 .NET SDK 8
卸载 .NET SDK 8 前先检查项目的 global.json 和需要的 SDK 版本,结束构建,保留源码、项目和全局工具,这篇覆盖用 Microsoft.DotNet.SDK.8 安装的独立 ARM64 SDK,Visual Studio 管理的组件另行处理。
移除对应 SDK 条目
到设置 › 应用 › 已安装的应用,找到要移除的 .NET SDK 8 版本和架构,选择卸载,微软说明了如何按条目移除 SDK 和运行时,由 Visual Studio 管理的组件从 Visual Studio Installer 移除。
对应 winget 包可以运行:
winget uninstall --id Microsoft.DotNet.SDK.8 --exact
这个命令启动登记的 Burn 卸载器,等它完成前保留缓存安装器,不为卸载一个 SDK 移除所有运行时。
保留共享位置
| 位置 | 怎么处理 |
|---|---|
%ProgramFiles%\dotnet |
保留共享安装根目录,其他 SDK、运行时和工具还会使用 |
%ProgramData%\Package Cache |
保留修复和卸载需要的安装器 |
项目目录和 global.json |
保留项目文件和 SDK 选择设置 |
按 SDK 和运行时列表核对具体版本,不直接删共享目录,微软也说明了删除整个 dotnet 目录会损坏 Visual Studio,并可能留下失效安装登记。
检查结果
dotnet --list-sdks
dotnet --list-runtimes
winget list --id Microsoft.DotNet.SDK.8 --exact
Test-Path "$env:ProgramFiles\dotnet"
SDK 列表里不再出现刚移除的版本,其他版本仍可以保留,运行时列表是另一份清单,不证明项目能构建,winget 没有匹配项表示包登记消失,共享目录返回 True 时可能还有其他 SDK 或运行时在用,False 表示目录不存在,找不到 dotnet 命令或查询报错都没有完成核验,要再确认终端使用的架构和安装位置。
Mole 会列出什么
实测 SDK 没有独占程序目录,也没有自己的残留审查项,Mole 调用登记的卸载器,保留共享 dotnet 根目录和 Package Cache,不随这个条目删除项目或其他 SDK 版本。
这次检查覆盖了什么
2026 年 10 月 3 日,用 .NET SDK 8.0.425 ARM64 做 winget 全机安装,安装登记的产品版本是 8.4.2526.42109,与 SDK 版本分开,Burn 卸载完成后,dotnet --list-sdks 仍列出 SDK 10.0.401,另外单独运行厂商卸载器,做了即时和十分钟后的检查,没有测试项目构建、全局工具或 Visual Studio 管理的 SDK 卸载。
