卸载软件时,为什么 Windows 不会删除所有相关文件?(例如 regedit 项、%appdata% 和 %programfiles%)。
手动操作确实很麻烦。如果可以的话,为什么这些文件和条目没有与“主要”软件文件一起自动删除呢?
我的意思是,至少 Windows 可以为用户提供一个选项来查找这些残留文件并将其删除。
我不确定所有 Windows 版本是否都是这种情况。如果不是这样,我想知道 Windows 10 的情况。
答案1
对于传统的 .exe 程序:
Windows 不知道哪些条目属于该应用程序;即使对于 HKCU\Software,它也只有名称(可能略有不同甚至完全不同)。
Windows 不知道哪些条目属于只到应用程序,并且不会在多个应用程序之间共享。
许多用户卸载某个程序只是为了随后重新安装不同的版本,因此删除所有相关数据会导致偏好设置和其他所有内容丢失。
同一台计算机上的多个用户可能会使用同一个程序,而卸载该程序的用户无权读取和写入所有其他用户的配置文件。(这不仅仅是技术限制——我认为大多数人都会反对他们的文件因为其他人卸载了某个程序而被神秘地删除。)
话虽如此,大多数问题都已通过“Microsoft Store”应用程序包解决 - 它们尽可能地独立。它们始终按用户安装,并且 Windows 为每个“Store”应用程序创建一个专用的注册表配置单元,因此每当您卸载应用程序时,它都可以删除整个配置单元,包括所有曾经创建的注册表项。
答案2
对于曾经存在过的每个 Windows 版本来说,情况确实都是如此。
这里的问题不是 Windows 本身的问题,实际上对于桌面产品,Windows 只运行产品自带的卸载程序。卸载程序的缺陷导致了残留。
一些安装包是由标准安装程序创建的,另外还有一个好处是它会自动创建卸载程序,从而省去了程序员自己动手的麻烦。
不幸的是,此卸载程序只知道如何卸载它安装的文件和快捷方式。它不知道程序所做的文件或注册表修改安装后。
为了找出这些后来的变化,一个专门的程序叫做 卸载程序 被使用。此程序将扫描文件系统和注册表以查找剩余项目。它找到的项目可能指向更多项目,依此类推。
卸载程序可能会因建议过多项目而出错。这就是为什么好的卸载程序会显示要删除的项目列表并让您取消选择项目的原因。好的卸载程序值得信赖,不会过度删除。
您可以在文章中找到带有评论的免费卸载程序列表 最佳免费程序卸载程序。始终建议使用卸载程序来保持计算机清洁,避免残留。