为什么您无法在Windows中同时卸载多个程序?

why-are-you-unable-to-uninstall-multiple-programs-simultaneously-in-windows-00

假设你有一小部分程序要在Windows系统上卸载,但Windows只允许你一次卸载一个程序。 这是为什么? 什么是阻止您同时卸载多个程序?

今天的问答环节由我们感谢SuperUser - Stack Exchange的一个分支,这是一个社区驱动的Q&A网站分组。

问题

SuperUser读者Jeroen Bollen想知道为什么一个人无法在Windows中同时卸载多个程序:

为什么Windows不让您从同时卸载或删除多个程序? 这背后的原因是什么? 会弄乱内部系统吗?

我不想同时卸载多个程序,我只是寻找为什么它不会是一个选项的原因。

它是什么,阻止人们在Windows中同时卸载多个程序?

答案

超级用户贡献者ultrasawblade和techie007有我们的答案。 首先,ultrasawblade:

如果你读了有关Windows安装程序系统是如何工作的话,很明显,他们申请从事务型数据库的一些想法,以程序的安装和维护,更何况的.msi文件本身是一个数据库。

在设计任何数据库时总是有问题 - 你想要速度还是精度/安全? 由于安装程序可以修改系统的配置,并且意外可能会使系统无法运行,因此安全性优先于速度。

其中一个原因的.msi安装程序是如此缓慢的原因之一是因为回滚文件,每个文件等,将被修改,那么后删除制成,允许任何变化是“回滚”,如果出现错误的事情的中间(例如停电或系统崩溃)。

现在,我相信MSI引擎本身一次只能安装,修改或删除一个程序。 如果您尝试另一种就是卸载例如运行.msi文件,它要么不能运行,或将等待当前正在运行的卸载过程来完成。 非MSI安装程序可能不会这样做,因为他们不使用MSI引擎。 但由于该安全设计的决定,这可能是为什么让只有一个卸载程序在调用一次APPWIZ.CPL坚持。

CCleaner允许你启动卸载程序,而不必等待以前运行的完成,但MSI安装程序可能仍然不能并行工作由于上述。

随后来自techie007的回答:

这确实只适用于使用该程序的Windows Installer系统

如果程序使用自己的(un)安装程序系统,则没有什么可以阻止您同时运行其他卸载程序。

Windows安装程序限制实例数,以避免多个程序在更改系统范围(通常共享)设置和文件时发生冲突。

大多数卸载程序跟踪他们正在更改,以便他们可以回滚成功,如果有一个失败。 如果一个人不知道所有的更改(由其他卸载程序),那么它可能实际上使事情WORSE如果它试图回滚失败的安装。

Windows Installer系统是为所有应用程序开发人员使用(在Windows上)以帮助避免类似问题的统一系统而创建的。


有什么东西添加到解释? 声音在评论中。 想要阅读更多的技术精明的Stack Exchange用户的答案? 这里查看完整的话题

赞 (0)
分享到:更多 ()